#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define REP(i, a, b) for (int i = a; i <= b; i++)
#define BACK(i, a, b) for (int i = a; i >= b; i--)
#define MOD 1000000007
#define PI 4 * atan(1)
#define sz(A) (int)A.size()
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<long long> vll;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int uint64;
int t,n,u;
set<int> adj[104];
bool visited[104];
int a[104][104];
void dfs(int u){
visited[u] = true;
for(int x: adj[u]){
if(!visited[x]){
dfs(x);
}
}
}
int tplt(){
int res= 0 ;
for(int i=1; i<=n; i++){
if(!visited[i]){
res++;
dfs(i);
}
}
return res;
}
void solve(int test){
freopen("CT.INP", "r", stdin);
freopen("CT.OUT", "w",stdout);
cin >> t >> n;
if(t == 2) cin >> u;
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
cin >> a[i][j];
if(a[i][j] && i < j){
adj[i].insert(j);
adj[j].insert(i);
}
}
}
if(t == 1){
int c0 = 0, c1 = 0;
vector<int> deg(n+1 , 0);
for(int i=1; i <=n; i++){
deg[i] += adj[i].size();
}
for(int i=1; i<=n; i++){
if(deg[i] & 1) c1++;
else c0++;
}
if(tplt()> 1){
cout << 0;
return;
}
if(c0 == n) cout << 1;
else if(c1 == 2) cout << 2;
else cout << 0;
}else{
vector<int> ce;
stack<int>st;
st.push(u);
while(!st.empty()){
int f = st.top();
if(adj[f].size() == 0){
ce.push_back(f);
st.pop();
}
else{
int x = *adj[f].begin();
st.push(x);
adj[f].erase(x);
adj[x].erase(f);
}
}
for(int i=ce.size()-1; i >= 0; i--){
cout << ce[i] << " ";
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int typetest = 0;
if (typetest){
int t;
cin >> t;
cin.ignore();
REP(i, 1, t){
solve(i);
}
}
else solve(0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpIDw9IGI7IGkrKykKI2RlZmluZSBCQUNLKGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpID49IGI7IGktLSkgCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBQSSA0ICogYXRhbigxKQojZGVmaW5lIHN6KEEpIChpbnQpQS5zaXplKCkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsbDsKdHlwZWRlZiBsb25nIGludCBpbnQzMjsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1aW50MzI7CnR5cGVkZWYgbG9uZyBsb25nIGludCBpbnQ2NDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnQ2NDsKCmludCB0LG4sdTsKc2V0PGludD4gYWRqWzEwNF07CmJvb2wgdmlzaXRlZFsxMDRdOwppbnQgYVsxMDRdWzEwNF07CnZvaWQgZGZzKGludCB1KXsKICAgIHZpc2l0ZWRbdV0gPSB0cnVlOwogICAgZm9yKGludCB4OiBhZGpbdV0pewogICAgICAgIGlmKCF2aXNpdGVkW3hdKXsKICAgICAgICAgICAgZGZzKHgpOwogICAgICAgIH0KICAgIH0KfQppbnQgdHBsdCgpewogICAgaW50IHJlcz0gMCA7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBpZighdmlzaXRlZFtpXSl7CiAgICAgICAgICAgIHJlcysrOwogICAgICAgICAgICBkZnMoaSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICByZXM7Cn0KCnZvaWQgc29sdmUoaW50IHRlc3QpewogICAgZnJlb3BlbigiQ1QuSU5QIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJDVC5PVVQiLCAidyIsc3Rkb3V0KTsKICAgIGNpbiA+PiB0ID4+IG47CiAgICBpZih0ID09IDIpIGNpbiA+PiB1OwogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgZm9yKGludCBqPTE7IGo8PW47IGorKyl7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgICAgICBpZihhW2ldW2pdICYmIGkgPCBqKXsKICAgICAgICAgICAgICAgIGFkaltpXS5pbnNlcnQoaik7CiAgICAgICAgICAgICAgICBhZGpbal0uaW5zZXJ0KGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYodCA9PSAxKXsKICAgICAgICBpbnQgYzAgPSAwLCBjMSA9IDA7CiAgICAgICAgdmVjdG9yPGludD4gZGVnKG4rMSAsIDApOwogICAgICAgIGZvcihpbnQgaT0xOyBpIDw9bjsgaSsrKXsgIAogICAgICAgICAgICBkZWdbaV0gKz0gYWRqW2ldLnNpemUoKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgICAgIGlmKGRlZ1tpXSAmIDEpIGMxKys7CiAgICAgICAgICAgIGVsc2UgYzArKzsKICAgICAgICB9CiAgICAgICAgaWYodHBsdCgpPiAxKXsKICAgICAgICAgICAgY291dCA8PCAwOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmKGMwID09IG4pIGNvdXQgPDwgMTsKICAgICAgICBlbHNlIGlmKGMxID09IDIpIGNvdXQgPDwgMjsKICAgICAgICBlbHNlIGNvdXQgPDwgMDsgICAgICAgCiAgICB9ZWxzZXsKICAgICAgICB2ZWN0b3I8aW50PiBjZTsKICAgICAgICBzdGFjazxpbnQ+c3Q7CiAgICAgICAgc3QucHVzaCh1KTsKICAgICAgICB3aGlsZSghc3QuZW1wdHkoKSl7CiAgICAgICAgICAgIGludCBmID0gc3QudG9wKCk7CiAgICAgICAgICAgIGlmKGFkaltmXS5zaXplKCkgPT0gMCl7CiAgICAgICAgICAgICAgICBjZS5wdXNoX2JhY2soZik7CiAgICAgICAgICAgICAgICBzdC5wb3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgaW50IHggPSAqYWRqW2ZdLmJlZ2luKCk7CiAgICAgICAgICAgICAgICBzdC5wdXNoKHgpOwogICAgICAgICAgICAgICAgYWRqW2ZdLmVyYXNlKHgpOwogICAgICAgICAgICAgICAgYWRqW3hdLmVyYXNlKGYpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT1jZS5zaXplKCktMTsgaSA+PSAwOyBpLS0pewogICAgICAgICAgICBjb3V0IDw8IGNlW2ldIDw8ICIgIjsKICAgICAgICB9CiAgICB9Cn0gICAKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgaW50IHR5cGV0ZXN0ID0gMDsKICAgIGlmICh0eXBldGVzdCl7CiAgICAgICAgaW50IHQ7CiAgICAgICAgY2luID4+IHQ7CiAgICAgICAgY2luLmlnbm9yZSgpOwogICAgICAgIFJFUChpLCAxLCB0KXsKICAgICAgICAgICAgc29sdmUoaSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSBzb2x2ZSgwKTsKfQ==