import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main{
static int[][] f= {{1,0},{-1,0},{0,1},{0,-1}};
static int n,m;
public static void dfs(int x,int y,int num,int[][] b,Set<Integer> set,int k) {
if(k==0) {
set.add(num);
return ;
}
for(int i=0;i<4;i++) {
int dx=x+f[i][0];
int dy=y+f[i][1];
if(dx>=0&&dx<n&&dy>=0&&dy<m) {
dfs(dx,dy,num*10+b[dx][dy],b,set,k-1);
}
}
}
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
n=in.nextInt();
m=in.nextInt();
int k=in.nextInt();
int[][] bit=new int[n][m];
int i,j;
Set<Integer> set =new HashSet<>();
for(i=0;i<n;i++) {
for(j=0;j<m;j++) {
bit[i][j]=in.nextInt();
}
}
for(i=0;i<n;i++) {
for(j=0;j<m;j++) {
dfs(i,j,bit[i][j],bit,set,k);
}
}
for(Integer s:set) {
System.out.println(s);
}
System.out.println(set.size());
}
}