#include<stdio.h> int a[30010]; int b[30010]; intA(int x, int n); intB(int x, int n); intChengFang(int a, int n, int last) { if (n == 0) { return1; } int ans = 1; ans = last * a % 10007; return ans % 10007; } int X[10010]; int Y[10010]; intmain() { int n, m; scanf("%d", &n); for (int i = 0; i <= n; i++) { scanf("%d", &a[i]); } scanf("%d", &m); for (int i = 0; i <= m; i++) { scanf("%d", &b[i]); } int q; scanf("%d", &q); for (int i = 0; i < q; i++) { int x, y; scanf("%d %d", &x, &y); printf("%d\n", (A(x, n) * B(y, m)) % 10007); } return0; } intA(int x, int n) { if (X[x] != 0) { return X[x]; } int ans = 0; int last = 1; for (int i = 0; i <= n; i++) { last = ChengFang(x, i, last); ans = ans + (a[i] % 10007 * last) % 10007; } X[x] = ans % 10007; return ans % 10007; } intB(int x, int n) { if (Y[x] != 0) { return Y[x]; } int ans = 0; int last = 1; for (int i = 0; i <= n; i++) { last = ChengFang(x, i, last); ans = ans + (b[i] % 10007 * last) % 10007; } Y[x] = ans % 10007; return ans % 10007; }