#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

const int MOD = 365;
const int MaxN = 202;

int d[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int dv[ MOD ][ MOD ];
int mat[ MaxN ][ MaxN ];
int g[ MaxN ][ MaxN ];
int a[ MaxN ], f[ MaxN ];
int n, m;

inline int gcd( int a, int b ) { return !b ? a : gcd( b, a%b ); }

int ok() {
  for( int i = 0; i < n; ++i ) {
    int s = 0;
    for( int j = 0; j < m; ++j )
      s = ( s + g[i][j]*a[j] ) %MOD;
    if( s != g[i][m] ) return 0;
  }
  return 1;
}

void solve() {
  int r = 0;
  for( int i = 0; i < m && r < n; ++i ) {
    int k = -1;
    for( int j = r; j < n; ++j )
      if( mat[j][i] > 0 ) { k = j; break; }
    f[i] = k;
    if( k == -1 ) continue;

    for( int j = 0; j <= m; ++j )
      swap( mat[i][j], mat[k][j] );
    int f = mat[i][i];
    for( int j = 0; j <= m; ++j )
      if( dv[mat[i][j]][f] == -1 ) return; else
	mat[i][j] = dv[mat[i][j]][f];
  
    for( int j = 0; j < n; ++j )
      if( mat[j][i] > 0 && i != j ) {
	int c = mat[j][i];
	for( int l = 0; l <= m; ++l ) {
	  mat[j][l] = ( mat[j][l] - c*mat[i][l] )%MOD;
	  if( mat[j][l] < 0 ) mat[j][l] += MOD;
	}
      }
    r++;
  }
  for( int i = 0; i < m; ++i )
    if( f[i] == -1 ) a[i] = 365; else
      a[i] = mat[f[i]][m];
}

int main( void ) {
  memset( dv, -1, sizeof( dv ) );
  for( int i = 0; i < MOD; ++i )
    for( int j = 0; j < MOD; ++j ) {
      int s = 0;
      for( int k = 0; k < MOD; ++k ) {
	if( s == i ) { dv[i][j] = k; break; }
	s += j;
	if( s >= MOD ) s -= MOD;
      }
    }
 
  scanf( "%d %d", &n, &m );
  for( int i = 0; i < n; ++i ) {
    int d1, m1, d2, m2;
    scanf( "%d %d %d %d", &d1, &m1, &d2, &m2 );
    d1--, d2--, m1--, m2--;

    for( int j = 0; j < m1; ++j )
      d1 += d[j];
    for( int j = 0; j < m2; ++j )
      d2 += d[j];
    d1 = ( d2-d1+MOD )%MOD;
    
    for( int j = 0; j < m; ++j )
      scanf( "%d", mat[i]+j );
    mat[i][m] = d1;
  }
  memcpy( g, mat, sizeof( mat ) );
  
  solve();
  if( !ok() ) { puts( "-1" ); return 0; }
  for( int i = 0; i < m; ++i ) {
    if( i ) putchar( ' ' );
    printf( "%d", a[i] );
  }
  putchar( '\n' );
  return 0;
}
