#include<bits/stdc++.h> //#pragma GCC optimize("O2") usingnamespace std; #define gg(x) cout << #x << ": " << x << "\n"; #define LL long long #define ULL unsigned long long #define Pair pair<LL ,LL > #define ls rt<<1 #define rs rt<<1|1 #define PI acos(-1.0) #define eps 1e-8 #define MAXN 9e18 #define fi first #define se second #define ll long long #define MS 500009 #define mod 1000000007
int n,m,k; char s[MS]; int dic[MS][26], fail[MS], num[MS], tot; int dicc[MS][26], fa[MS]; queue<int > Q; int dp[MS], ans;
voidinsert(){ int u = 0; for(int i=1;s[i];i++){ int t = s[i]-'a'; if(!dic[u][t]) ++tot, dic[u][t] = dicc[u][t] = tot, fa[tot] = u; u = dic[u][t]; } num[u]++; }