#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN = 330;
const int INF = 0xffffff0;
int Equ,Var;
int A[MAXN][MAXN];
int X[MAXN];
bool FreeX[MAXN];
int FreeNum;
int GCD(int a,int b)
{
if(b == 0)
return a;
return GCD(b,a%b);
}
int LCM(int a,int b)
{
return a / GCD(a,b) * b;
}
int Gauss()
{
int i,j,k;
int MaxRow;
int col = 0;
int Lcm;
int ta,tb;
int temp;
int FreeXNum;
int FreeIndex;
for(i = 0; i <= Var; ++i)
{
X[i] = 0;
FreeX[i] = true;
}
for(k = 0; k < Equ && col < Var; ++k,++col)
{
MaxRow = k;
for(i = k+1; i < Equ; ++i)
{
if(abs(A[i][col]) > abs(A[MaxRow][col]))
MaxRow = i;
}
if(MaxRow != k)
{
for(j = k; j < Var+1; ++j)
swap(A[k][j],A[MaxRow][j]);
}
if(A[k][col] == 0)
{
k--;
continue;
}
for(i = k+1; i < Equ; ++i)
{
if(A[i][col])
{
Lcm = LCM(abs(A[i][col]),abs(A[k][col]));
ta = Lcm / abs(A[i][col]);
tb = Lcm / abs(A[k][col]);
if(A[i][col] * A[k][col] < 0)
tb = -tb;
for(j = col; j < Var+1; ++j)
{
A[i][j] = (A[i][j]*ta%7 - A[k][j]*tb%7 + 7) % 7;
}
}
}
}
for(i = k; i < Equ; ++i)
{
if(A[i][col] % 7)
return -1;
}
if(k < Var)
{
return Var - k;
}
for(i = Var-1; i >= 0; --i)
{
temp = A[i][Var] % 7;
for(j = i+1; j < Var; ++j)
{
if(A[i][j])
temp = (temp - A[i][j]*X[j]%7 + 7 ) % 7;
}
while(temp % A[i][i])
temp += 7;
X[i] = temp / A[i][i];
if(X[i] < 3)
{
while(X[i] < 3)
X[i] += 7;
}
else if(X[i] > 9)
{
while(X[i] > 9)
X[i] -= 7;
}
}
return 0;
}
char Week[7][10] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
char s1[4],s2[4];
void Init()
{
int d;
memset(A,0,sizeof(A));
memset(X,0,sizeof(X));
for(int i = 0; i < Equ; ++i)
{
scanf("%d%s%s",&d,s1,s2);
int s,t;
for(int j = 0; j < 8; ++j)
{
if(strcmp(s1,Week[j]) == 0)
{
s = j;
break;
}
}
for(int j = 0; j < 8; ++j)
{
if(strcmp(s2,Week[j]) == 0)
{
t = j;
break;
}
}
while(d--)
{
int num;
scanf("%d",&num);
A[i][num-1]++;
A[i][num-1] %= 7;
}
A[i][Var] = (t-s+8) % 7;
}
}
int main()
{
while(~scanf("%d%d",&Var,&Equ) && (Var||Equ))
{
Init();
FreeNum = Gauss();
if(FreeNum == -1)
{
printf("Inconsistent data.\n");
}
else if(FreeNum == 0)
{
for(int i = 0; i < Var; ++i)
{
if(i != Var-1)
printf("%d ",X[i]);
else
printf("%d\n",X[i]);
}
}
else
{
printf("Multiple solutions.\n");
}
}
return 0;
}