#include <bits/stdc++.h>//35pts
using namespace std;
long long n,k;
long long mp[505][505];
struct p{
long long er,ed;//批评者,被批评者
}pip[10000005];
long long used[505][505];
long long cnt = 1;
int main(){
cin >> n >> k;
for(long long i = 1;i<=n;i++){
for(long long j = 1;j<=n;j++){
cin >> mp[i][j];
}
}
used[1][2] = 1;//第一人批评第二人
pip[1].er = 1;//er是1
pip[1].ed = 2;//ed是2
if(k == 1){//如果之批评一次就是第一人
cout << 1;
return 0;
}
while(1){
cnt++;
pip[cnt].er = pip[cnt-1].ed;
pip[cnt].ed = mp[pip[cnt-1].ed][pip[cnt-1].er];//新的批评
if(used[pip[cnt].er][pip[cnt].ed] == 1){//进入循环
cnt--;//长度为cnt
long long s = k%cnt;//要找的地方
if(s == 0){
s = cnt;
}
cout << pip[s].er;//输出答案
return 0;//直接结束
}
used[pip[cnt].er][pip[cnt].ed] = 1;//设已走
if(cnt == k){//如果到了,直接输出
cout << pip[cnt].er;
return 0;
}
}
}