// Aizu 1187: ICPC Ranking
// 2017.9.13 bal4u@uu

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct { int id, sr, st, c[11]; } TM;
TM tm[55];

int cmp(TM *a, TM *b)
{
	if (b->sr - a->sr) return b->sr - a->sr;
	if (a->st - b->st) return a->st - b->st;
	return b->id - a->id;
}

int main()
{
	int M, T, P, R;
	int m, t, p, j, i;

	while (scanf("%d%d%d%d", &M, &T, &P, &R) && M) {
		memset(tm, 0, sizeof(tm)); for (i = 1; i <= T; i++) tm[i].id = i;
		while (R-- > 0) {
			scanf("%d%d%d%d", &m, &t, &p, &j);
			if (j == 0) tm[t].sr++, tm[t].st += m + 20*tm[t].c[p];
			else        tm[t].c[p]++;
		}
		qsort(tm+1, T, sizeof(TM), cmp);
		printf("%d", tm[1].id);
		for (i = 2; i <= T; i++) {
			if (tm[i].sr == tm[i-1].sr && tm[i].st == tm[i-1].st) putchar('=');
			else putchar(',');
			printf("%d", tm[i].id);
		}
		putchar('\n');
	}
	return 0;
}