
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e4+100;
struct stu
{
int id;
int score[10];
int sum;
int pf;
bool state;
} q[maxn];
int que[10];
int cmp(stu a,stu b)
{
if(a.sum==b.sum)
{
if(a.pf==b.pf)
{
return a.id<b.id;
}
return a.pf>b.pf;
}
return a.sum>b.sum;
}
int main()
{
int n,k,m;
scanf("%d%d%d",&n,&k,&m);
for(int i=1; i<=n; i++)
{
q[i].state=0;
q[i].sum=0;
q[i].pf=0;
q[i].id=i;
memset(q[i].score,-1,sizeof(q[i].score));
}
for(int i=1; i<=k; i++)
{
scanf("%d",&que[i]);
}
for(int i=1; i<=m; i++)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(c!=-1)
{
q[a].state=1;
}
if(c==-1&&q[a].score[b]==-1)
{
q[a].score[b]=0;
}
if(c>q[a].score[b])
{
q[a].score[b]=c;
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=k; j++)
{
if(q[i].score[j]!=-1)
q[i].sum+=q[i].score[j];
if(q[i].score[j]==que[j])
{
q[i].pf++;
}
}
}
sort(q+1,q+1+n,cmp);
int r=1;
for(int i=1; i<=n; i++)
{
if(q[i].state==1)
{
if(i>1&&q[i].sum!=q[i-1].sum)
{
r=i;
}
printf("%d %05d %d ",r,q[i].id,q[i].sum);
for(int j=1; j<=k; j++)
{
if(q[i].score[j]==-1)
{
printf("-");
}
else printf("%d",q[i].score[j]);
if(j!=k) printf(" ");
}
printf("\n");
}
}
}