(I2
I144
I6
(dp0
Vtable.%l
p1
(Vb.cpp
p2
S"# include <bits/stdc++.h>\r\nusing namespace std;\r\n# define fi cin\r\n# define fo cout\r\nlist < int > a;\r\nlist < int > b;\r\nlist < int > c;\r\nint us[77];\r\nint mn[2][77];\r\nint mx[2][77];\r\nint s[2][77];\r\nint n;\r\nint get(list < int > a,list < int > b,list < int > c,int len1,int len2,int len3,int col,int lin)\r\n{\r\n    int ans = 0;\r\n    if (col == 1 && len1) return 0;\r\n    if (col == 1 && lin == n) return 1;\r\n    if (col == 0)\r\n    {\r\n        for (int k = 0;k < len1;++k)\r\n            {\r\n                int it = a.front();\r\n                a.pop_front();\r\n                if (mn[col][lin] <= it && it <= mx[col][lin] && it > s[col][lin-1]) s[col][lin] = it,ans += get(a,b,c,len1-1,len2,len3,lin == n ? col+1:col,lin == n ? 1:lin+1);\r\n                a.push_back(it);\r\n            }\r\n    }\r\n    if (col == 1)\r\n    {\r\n        for (int k = 0;k < len2;++k)\r\n            {\r\n                int it = b.front();\r\n                b.pop_front();\r\n                if (mn[col][lin] <= it && it <= mx[col][lin] && it > s[col][lin-1] && it > s[col-1][lin]) s[col][lin] = it,ans += get(a,b,c,len1,len2-1,len3,lin == n ? col+1:col,lin == n ? 1:lin+1);\r\n                b.push_back(it);\r\n            }\r\n    }\r\n    for (int k = 0;k < len3;++k)\r\n        {\r\n            int it = c.front();\r\n            c.pop_front();\r\n            if (mn[col][lin] <= it && it <= mx[col][lin] && it > s[col][lin-1] && (col ? it > s[col-1][lin]:1)) s[col][lin] = it,ans += get(a,b,c,len1,len2,len3-1,lin == n ? col+1:col,lin == n ? 1:lin+1);\r\n            c.push_back(it);\r\n        }\r\n    return ans;\r\n}\r\nint main(void)\r\n{\r\n    ios_base :: sync_with_stdio(0);\r\n    int t;\r\n    t = 1;\r\n    while (t --)\r\n    {\r\n        a.clear();\r\n        b.clear();\r\n        c.clear();\r\n        fi>>n;\r\n        int nw;\r\n        int m,k;\r\n        fi>>m;\r\n        while (m --) fi>>nw,a.push_back(nw),us[nw] = 1;\r\n        fi>>k;\r\n        while (k --) fi>>nw,b.push_back(nw),us[nw] = 1;\r\n        for (int i = 1;i <= n+n;++i)\r\n            if (!us[i])\r\n                c.push_back(i);\r\n        for (int i = 0;i < 2;++i)\r\n            for (int j = 1;j <= n;++j)\r\n                mx[i][j] = 2*n - (n - j + (n - j + 1) * (1 - i)),mn[i][j] = j + i*j;\r\n        fo << get(a,b,c,a.size(),b.size(),c.size(),0,1) << '\\n',0;\r\n    }\r\n}\r\n"
p3
tp4
stp5
.