#include #define rep(i,n) for (int i = 0; i < (n); ++i) #define all(x) (x).begin(),(x).end() using namespace std; using ll = long long; using P = pair; template void chmin(T &a, const T &b) noexcept { if (b < a) a = b; } template void chmax(T &a, const T &b) noexcept { if (a < b) a = b; } namespace FFT { const double PI = acos(double(-1)); using cmplx = complex; unsigned bitreverse32(unsigned x) { x = ((x & 0x55555555) << 1) | ((x >> 1) & 0x55555555); x = ((x & 0x33333333) << 2) | ((x >> 2) & 0x33333333); x = ((x & 0x0F0F0F0F) << 4) | ((x >> 4) & 0x0F0F0F0F); x = (x << 24) | ((x & 0xFF00) << 8) | ((x >> 8) & 0xFF00) | (x >> 24); return x; } void fft(vector &A, int k){ if (k == 0) return; for (int i = 1; i < (1<> (32-k); if (ind > i) { std::swap(A[i], A[ind]); } } for (int i = 1; i <= k; ++i) { //N = (1< convolve(const vector& A, const vector& B){ int siz = A.size() + B.size() - 1; int k = 0; while (siz >= (1< CA(1< CC(1< C(siz); for (int i = 0; i < siz; ++i) { C[i] = (ll)((real(conj(CC[i])) / (1<> l >> m >> n; vector a(n,0), b(n,0); rep(i,l) { int x; cin >> x; x--; a[x] = 1; } rep(i,m) { int x; cin >> x; b[n-x] = 1; } int q; cin >> q; auto c = FFT::convolve(a, b); rep(i, q) { cout << c[n-1+i] << endl; } return 0; }