#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
typedef struct
{
int score, choice_number, right_choice, cnt_wrong; char choice[10];
}choice;
//(5 a b c d e)
int main()
{
int N, M;
choice *array;
scanf("%d %d", &N, &M);
array = (choice*)malloc(sizeof(choice)*M);
for (int i = 0; i < M; i++)
{
scanf("%d %d %d", &array[i].score, &array[i].choice_number, &array[i].right_choice);
getchar();gets(array[i].choice);
array[i].cnt_wrong = 0;
}
for (int i = 0; i < N; i++)
{
int score = 0;
for (int j = 0; j < M; j++)
{
int answer_number, count = 0, flag = 1; char answer[10], ch;
scanf("(%d", &answer_number); getchar();
if (i != 0 || j != 0)getchar(), getchar(), getchar();
while ((ch = getchar()) != ')')answer[count++] = ch;
answer[count] = 0;
if (strcmp(answer, array[j].choice) == 0)score += array[j].score;
else array[j].cnt_wrong++;
}
printf("%d\n", score);
}
int max_index = 0, flag = 0;
for (int i = 0; i < M; i++)
{
if (array[i].cnt_wrong >= array[max_index].cnt_wrong)max_index = i;
if (array[i].cnt_wrong != 0)flag = 1;
}
if (flag == 0)printf("Too simple");
else
{
printf("%d ", array[max_index].cnt_wrong);
for (int i = 0; i < M; i++)if (array[i].cnt_wrong == array[max_index].cnt_wrong)
{
printf("%d", i + 1);
if (i != max_index)printf(" ");
}
}
return 0;
}