1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<cstdlib>
5 #include<cmath>
6 #include<ctime>
7 #include<algorithm>
8 using namespace std;
9 int sr,sb,sg,m,n,mod,ans,a[61][61],b[61],f[61][61][61],d[61];
10 inline int read()
11 {
12 int x=0;char ch=getchar();
13 while(ch<‘0‘||ch>‘9‘)ch=getchar();
14 while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
15 return x;
16 }
17 int dp(int x)
18 {
19 for(int i=1;i<=n;i++) b[i]=0;
20 int sum=0,p=0;
21 for(int i=1;i<=n;i++)
22 if(!b[i])
23 {
24 p=i; b[p]=1; d[++sum]=1;
25 while(!b[a[x][p]])
26 {
27 b[a[x][p]]=1;
28 d[sum]++;
29 p=a[x][p];
30 }
31 }
32 for(int i=sr;i>=0;i--)
33 for(int j=sb;j>=0;j--)
34 for(int k=sg;k>=0;k--)
35 f[i][j][k]=0;
36 f[0][0][0]=1;
37 for(int h=1;h<=sum;h++)
38 for(int i=sr;i>=0;i--)
39 for(int j=sb;j>=0;j--)
40 for(int k=sg;k>=0;k--)
41 {
42 if(i>=d[h]) f[i][j][k]=(f[i][j][k]+f[i-d[h]][j][k])%mod;
43 if(j>=d[h]) f[i][j][k]=(f[i][j][k]+f[i][j-d[h]][k])%mod;
44 if(k>=d[h]) f[i][j][k]=(f[i][j][k]+f[i][j][k-d[h]])%mod;
45 }
46 return f[sr][sb][sg];
47 }
48 void exgcd(int a,int b,int &x,int &y)
49 {
50 if(b==0) {x=1; y=0; return;}
51 exgcd(b,a%b,x,y);
52 int t=x; x=y; y=t-a/b*y;
53 }
54 int main()
55 {
56 sr=read(); sb=read(); sg=read(); m=read(); mod=read();
57 n=sr+sb+sg;
58 for(int i=1;i<=m;i++)
59 for(int j=1;j<=n;j++)
60 a[i][j]=read();
61 m++;
62 for(int i=1;i<=n;i++) a[m][i]=i;
63 for(int i=1;i<=m;i++) ans=(ans+dp(i))%mod;
64 int x,y;
65 exgcd(m,mod,x,y);
66 while(x<0) x+=mod;
67 printf("%d\n",ans*x%mod);
68 return 0;
69 }