#include <bits/stdc++.h>
#define i64 long long
#define u64 unsigned long long
#define i32 int
#define u32 unsigned int
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ld long double
#define defmod 1000000007
#define mati64(a,b) vector<vector<i64>>(a, vector<i64>(b, 0));
using namespace std;
int main(){
cin.sync_with_stdio(0);
cin.tie(0);
srand(time(0));
int n, m; cin >> n >> m;
vector<int> lol[1010];
for(int i = 0; i < n; ++i){
lol[i] = vector<int>(7);
for(int j = 0; j < 7; ++j)
cin >> lol[i][j];
}
string ans = "";
int cc = 100000;
while(cc--){
string a(m+1, '0');
for(int i = 0; i < m; ++i){
if(rand()%10 < 5)
a[i+1] = '1';
}
bool ok = true;
for(int i = 0; i < n; ++i){
bool ok2 = false;
for(int j = 0; j < 7; ++j){
if(lol[i][j] < 0 && a[-lol[i][j]] == '0')
ok2 = true;
else if(lol[i][j] > 0 && a[lol[i][j]] == '1')
ok2 = true;
}
if(!ok2){
ok = false;
break;
}
}
if(ok){
ans = a.substr(1, m);
break;
}
}
if(ans.length() == 0)
cout << "UNSAT" << endl;
else
cout << "SAT" << endl << ans << endl;
return