#include #define MAXN 50005 using namespace std; string arr[MAXN], p[MAXN]; int n, q, mx; bool sz[1500005]; unordered_map mp; void read() { freopen("wordstone.in", "r", stdin); freopen("wordstone.out", "w", stdout); ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i = 0; i < n; i ++) { cin>>arr[i]; } cin>>q; for(int i = 0; i < q; i ++) { cin>>p[i]; sz[p[i].size()] = 1; mx = max(mx, (int)p[i].size()); } } void solve() { for(int i = 0; i < n; i ++) { string cur = ""; int ed = min(mx, (int)arr[i].size()), ss = arr[i].size(); for(int k = 0; k < ed; k ++) { cur += arr[i][k]; if(sz[k + 1]) mp[cur] ++; } cur = ""; for(int k = 0; k < ed; k ++) { cur = arr[i][ss - k - 1] + cur; if(sz[k + 1]) mp[cur] ++; } } for(int i = 0; i < q; i ++) { cout<