#include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define mem(i, j) memset(i, j, sizeof(i)) #define rep(i, j, k) for(int i = j; i <= k; i++) #define dep(i, j, k) for(int i = k; i >= j; i--) #define pb push_back #define make make_pair #define INF INT_MAX #define inf LLONG_MAX #define PI acos(-1) #define fir first #define sec second using namespace std; const int N = 1e6 + 5; const LL mod = 1e9 + 7; LL ksm(LL a, LL b) { LL ans = 1LL; while(b) { if(b & 1) ans = ans * a % mod; a = a * a % mod; b >>= 1; } return ans; } struct manacher { char ch[N << 1]; int p[N << 1]; void work(char *s) { int ans = 0; int l = 0; ch[l++] = '&'; ch[l++] = '#'; int len = strlen(s); rep(i, 0, len - 1) { ch[l++] = s[i]; ch[l++] = '#'; } ch[l] = '