#include "stdio.h"
#define TEAM_MAX 300

int main(int argc, char const *argv[])
{
    int ti,team,probrem,record;
    int ti_keika,team_num,pro_num,gouhi;
    int i,j,k;
    int score[TEAM_MAX][50][10];
    int score_sin[50];
    int min;
    int min_num;
    int syuturyoku_count = 0;
    int dataset = 0;

    while(1){
        dataset++;
        //?????????
        for(i = 0;i < TEAM_MAX;i++){
            for(j = 0;j < 50;j++){
                for(k = 0;k < 10;k++){
                    score[i][j][k] = 0;
                }
            }
            score_sin[i] = 0;
        }
        // ???????????????????????¢?????????????????\??????0 0 ???????????????
        scanf("%d %d %d %d",&ti,&team,&probrem,&record);//???????????????????????°???????????°???????????°
        if(probrem == 0 && record == 0 && team == 0 && ti == 0){
            break;
        }
        for(i = 0; i < record;i++){
            // ???????????\???
            scanf("%d %d %d %d",&ti_keika,&team_num,&pro_num,&gouhi);
            // ??????????????£???????????????????????£???????????????
            // ??£?§£????????????????????¢????????????
            if(gouhi != 0){
                score[team_num][pro_num][1] += 20;
            } else {
                score_sin[team_num] += score[team_num][pro_num][1]+ti_keika;
                score_sin[team_num] -= 1000000;
            }
        }
        syuturyoku_count = 0;
        // ????????¢?????????????????????????????????
        while(syuturyoku_count != team) {
            min = 100000000;
            //?????§???????????¢???????????????
            for(j = team;j >= 1;j--){
                if(min > score_sin[j]){
                    min_num=1;
                    min = score_sin[j];
                } else if(min == score_sin[j]) {
                    min_num++;
                }
            }
            // ????????¨???
            for(j = team;j >= 1;j--){
                //?????????????????° 
                if(min == score_sin[j]){
                    printf("%d", j);
                    syuturyoku_count++;
                    if(syuturyoku_count == team){
                        printf("\n");
                        break;
                    } else {
                        if(min_num >= 2){
                            printf("=");
                        }
                        else {
                            printf(",");
                        }
                    }
                    score_sin[j] = 100000000;
                    break;
                }
            }
        }


    }

    return 0;
}