(I2
I121
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include <bits/stdc++.h>\r\n\r\nusing namespace std;\r\n\r\nint n,asz,bsz,csz;\r\nint a[128],b[128],c[128];\r\nbool here[128];\r\nbool used[37][37][72][2][2];\r\nlong long state[37][37][72][2][2];\r\n\r\nlong long recurse(int col, int posa, int posb, int posc, int f1, int f2) {\r\n    if(col>n) return 1;\r\n    if(used[posa][posb][posc][f1][f2]) return state[posa][posb][posc][f1][f2];\r\n    long long ans=0;\r\n    int lasta,lastb;\r\n    if(f1==1 && f2==1) {\r\n        lasta=c[posc-2];\r\n        lastb=c[posc-1];\r\n    }\r\n    else if(f1==1) {\r\n        lasta=c[posc-1];\r\n        lastb=b[posb-1];\r\n    }\r\n    else if(f2==1) {\r\n        lasta=a[posa-1];\r\n        lastb=c[posc-1];\r\n    }\r\n    else {\r\n        lasta=a[posa-1];\r\n        lastb=b[posb-1];\r\n    }\r\n    if(posa<=asz && posb<=bsz && a[posa]>lasta && b[posb]>lastb && a[posa]<b[posb]) ans+=recurse(col+1,posa+1,posb+1,posc,0,0);\r\n    if(posa<=asz && posc<=csz && a[posa]>lasta && c[posc]>lastb && a[posa]<c[posc]) ans+=recurse(col+1,posa+1,posb,posc+1,0,1);\r\n    if(posc<=csz && posb<=bsz && c[posc]>lasta && b[posb]>lastb && c[posc]<b[posb]) ans+=recurse(col+1,posa,posb+1,posc+1,1,0);\r\n    if(posc+1<=csz && c[posc]>lasta && c[posc+1]>lastb) ans+=recurse(col+1,posa,posb,posc+2,1,1);\r\n    used[posa][posb][posc][f1][f2]=true;\r\n    state[posa][posb][posc][f1][f2]=ans;\r\n    return ans;\r\n}\r\n\r\nint main() {\r\n    int i;\r\n\r\n    scanf("%d", &n);\r\n    scanf("%d", &asz);\r\n    for(i=1;i<=asz;i++) scanf("%d", &a[i]),here[a[i]]=true;\r\n    sort(a+1,a+1+asz);\r\n    scanf("%d", &bsz);\r\n    for(i=1;i<=bsz;i++) scanf("%d", &b[i]),here[b[i]]=true;\r\n    sort(b+1,b+1+bsz);\r\n    for(i=1;i<=2*n;i++) if(!here[i]) c[++csz]=i;\r\n    /*printf("%d\\n", asz);\r\n    for(i=1;i<=asz;i++) printf("%d ", a[i]);\r\n    printf("\\n\\n");\r\n    printf("%d\\n", bsz);\r\n    for(i=1;i<=bsz;i++) printf("%d ", b[i]);\r\n    printf("\\n\\n");\r\n    printf("%d\\n", csz);\r\n    for(i=1;i<=csz;i++) printf("%d ", c[i]);\r\n    printf("\\n\\n");*/\r\n    printf("%lld\\n", recurse(1,1,1,1,0,0));\r\n\r\n    return 0;\r\n}\r\n/**\r\n4\r\n2 3 2\r\n3 4 8 7\r\n**/\r\n'
p3
tp4
stp5
.