(I2
I123
I6
(dp0
Vtable.%l
p1
(V3.cpp
p2
S'#include <bits/stdc++.h>\r\n#define endl \'\\n\'\r\n\r\n#define int long long\r\n\r\nusing namespace std;\r\nconst int MAXN = 2 * (42);\r\n\r\nint n, m, k;\r\nint a[MAXN], b[MAXN], c[MAXN];\r\nbool used[2 * MAXN];\r\n\r\nvoid read()\r\n{\r\n    cin >> n;\r\n\r\n    cin >> m;\r\n    for(int i = 0; i < m; i++)\r\n        cin >> a[i];\r\n\r\n    cin >> k;\r\n    for(int i = 0; i < k; i++)\r\n        cin >> b[i];\r\n}\r\n\r\nint a_cop[MAXN], b_cop[MAXN];\r\n\r\nbool check()\r\n{\r\n    for(int i = 0; i < n; i++)\r\n        if(a_cop[i] > b_cop[i])\r\n            return false;\r\n\r\n    //cout << endl;\r\n    //for(int i = 0; i < n; i++)\r\n    //cout << a_cop[i] << " " << b_cop[i] << endl;\r\n\r\n    return true;\r\n}\r\n\r\nvoid solve()\r\n{\r\n    sort(a, a + m);\r\n    sort(b, b + k);\r\n\r\n    for(int i = 0; i < m; i++) used[a[i]] = true;\r\n    for(int i = 0; i < k; i++) used[b[i]] = true;\r\n\r\n    int cnt = 0;\r\n    for(int i = 1; i <= 2 * n; i++)\r\n        if(!used[i])\r\n            c[cnt++] = i;\r\n\r\n    int ans = 0, half = n / 2;\r\n\r\n    for(int mask = 0; mask < (1 << cnt); mask++)\r\n    {\r\n        if(__builtin_popcount(mask) != (n - m)) continue;\r\n\r\n        for(int i = 0; i < m; i++) a_cop[i] = a[i];\r\n        for(int i = 0; i < k; i++) b_cop[i] = b[i];\r\n        int sz_a = m, sz_b = k;\r\n\r\n        for(int i = 0; i < cnt; i++)\r\n            if(mask & (1 << i))\r\n                a_cop[sz_a++] = c[i];\r\n            else\r\n                b_cop[sz_b++] = c[i];\r\n\r\n        sort(a_cop, a_cop + n);\r\n        sort(b_cop, b_cop + n);\r\n\r\n        if(check()) ans++;\r\n    }\r\n\r\n    cout << ans << endl;\r\n}\r\n\r\n#undef int\r\nint main()\r\n{\r\n    ios_base::sync_with_stdio(false);\r\n    cin.tie(NULL);\r\n\r\n    read();\r\n    solve();\r\n    return 0;\r\n}\r\n\r\n/*\r\n11\r\n6 5 2 7 8 6 8 3 5 6 7\r\n*/\r\n'
p3
tp4
stp5
.