#include <iostream>
using namespace std;
const int N = 15;
int n,k;
int g[N][N];
bool st[N][N];
bool eg[N*N+N][N*N+N];
int r[N*N+N];
int cnt;
int dx[8]={-1,-1,0,1,1,1,0,-1};
int dy[8]={0,1,1,1,0,-1,-1,-1};
bool dfs(int x,int y,int u,int sum)
{
if(x==n-1&&y==n-1)
{
if(sum==n*n-1) return true;
return false;
}
for(int i=0;i<8;i++)
{
int a=x+dx[i],b=y+dy[i];
if(a<0||a>=n||b<0||b>=n) continue;
if(st[a][b]) continue;
if(g[a][b]!=(u+1)%k) continue;//(a,y) (x,b)
if(eg[a*n+y][x*n+b]||eg[x*n+b][a*n+y]) continue;
st[a][b]=true;
eg[x*n+y][a*n+b]=true;
eg[a*n+b][x*n+y]=true;
r[sum]=i;
if(dfs(a,b,(u+1)%k,sum+1))return true;
st[a][b]=false;
eg[x*n+y][a*n+b]=false;
eg[a*n+b][x*n+y]=false;
r[sum]=0;
}
return false;
}
int main()
{
cin>>n>>k;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>g[i][j];
if(g[0][0]!=0||g[n-1][n-1]!=k-1)
{
cout<<"-1";
return 0;
}
st[0][0]=true;
if(dfs(0,0,0,0))
for(int i=0;i<n*n-1;i++) cout<<r[i];
else cout<<"-1";
return 0;
}