#include<bits/stdc++.h>
using namespace std;
int a[110][110],n,m,k;
long long b[100010],pp;
int dx[3]={0,1,0};
int dy[3]={0,0,1};
void dfs(int x,int y,long long sum){
if( x==n && y==m ) b[++pp]=sum%k;
else{
for(int i=1;i<=2;i++){
int nx=dx[i]+x;
int ny=dy[i]+y;
if( nx<=n && ny<=m ) dfs(nx,ny,(sum*a[nx][ny]%k)%k);
}
}
return;
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
dfs(1,1,a[1][1]%k);
sort(b+1,b+pp+1);
int m=pp;
for(int i=1;i<=m;i++){
if( b[i]==b[i-1] && i!=1 ){
b[i-1]=100;
pp--;
}
}
sort(b+1,b+m+1);
cout<<pp<<endl;
for(int i=1;i<=pp;i++) cout<<b[i]<<' ';
return 0;
}