#include #include using namespace std; long LCP (string l, string k) { long res = 0; for (int i = 0; i < min(l.size(), k.size()); i++) { if (l[i] != k[i]) { break; } else { res += 1; } } return res; } int main () { int N; cin >> N; string s[100001]; for (int i = 0; i < N; i++) { cin >> s[i]; } int M; long x, d; cin >> M >> x >> d; vector i, j; for (int k = 0; k < M; k++) { i.push_back((x / (N - 1)) + 1); j.push_back((x % (N - 1)) + 1); if (i[k] > j[k]) { swap(i[k], j[k]); } else { j[k] = j[k] + 1; } i[k] -= 1; j[k] -= 1; x = (x + d) % (N * (N - 1)); } long res = 0; for (int k = 0; k < M; k++) { res += LCP(s[i[k]], s[j[k]]); } cout << res << endl; }