#include #define ll long long #define mp make_pair #define pb push_back #define pii pair #define pll pair #define vi vector #define vll vector #define X first #define Y second using namespace std; deque factors; void find_factors(ll x) { //sqrt(x) ll S = sqrt(x); factors.clear(); while (x%2 == 0) { factors.push_back(2); x = x/2; } for (int i = 3; i <= S and x >= i; i = i+2) { while (x%i == 0) { factors.push_back(i); x = x/i; } } if (x > 2) for (int i = 0; i < factors.size(); i++) if (x > factors[i]) {factors.insert(factors.begin() + i, x); break;} return; } ll N; ll K; string s; char c[26]; ll v[26]; map vr; ll razina[20]; ll prost; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> N; cin >> s; cin >> K; for (int i = 0; i < K; i++) { cin >> c[i] >> v[i]; vr[c[i]] = v[i]; } find_factors(N); prost = factors[0]; for (int i = 1; i <= N; i *= prost) { ll cnt = 0; for (int j = 1; j <= i; j *= prost) { for (int k = 1; k <= j; k++) { cnt += i / j; } } razina[i] = cnt; } ll sol = 0; ll len[N]; for (int i = 0; i < N; i++) { char slovo = s[i]; int raz = 0; ll opt = 0; for (int j = N; j >= 1; j /= prost) { if (i - j >= 0 and ) } } }