#include<bits/stdc++.h>
using namespace std;
int n,m,k,cnt,a[102],mp[102][102];
bool ha[102];
int dx[3]={0,1,0},dy[3]={0,0,1};
void dfs(int s,int x,int y){
if(x==n and y==m){
if(!ha[s]){
cnt++;
a[cnt]=s;
ha[s]=1;
}
return;
}
for(int i=1;i<=2;i++){
int nx=x+dx[i],ny=y+dy[i];
if(nx>n or ny>m) continue;
else dfs((s*mp[nx][ny])%k,nx,ny);
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
dfs(mp[1][1]%k,1,1);
cout<<cnt<<endl;
sort(a+1,a+cnt+1);
for(int i=1;i<=cnt;i++)
cout<<a[i]<<" ";
return 0;
}