QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#398211#8079. Range Periodicity QuerycaijianhongWA 492ms89056kbC++203.9kb2024-04-25 08:46:052024-06-15 11:48:41

Judging History

你现在查看的是测评时间为 2024-06-15 11:48:41 的历史记录

  • [2024-06-15 15:38:16]
  • hack成功,自动添加数据
  • (/hack/699)
  • [2024-06-15 15:32:38]
  • hack成功,自动添加数据
  • (/hack/698)
  • [2024-06-15 15:28:06]
  • hack成功,自动添加数据
  • (/hack/696)
  • [2024-06-15 15:23:18]
  • hack成功,自动添加数据
  • (/hack/695)
  • [2024-06-15 15:03:19]
  • hack成功,自动添加数据
  • (/hack/694)
  • [2024-06-15 12:23:52]
  • hack成功,自动添加数据
  • (/hack/689)
  • [2024-06-15 12:15:05]
  • hack成功,自动添加数据
  • (/hack/688)
  • [2024-06-15 12:11:26]
  • hack成功,自动添加数据
  • (/hack/687)
  • [2024-06-15 12:07:23]
  • hack成功,自动添加数据
  • (/hack/686)
  • [2024-06-15 12:02:06]
  • hack成功,自动添加数据
  • (/hack/684)
  • [2024-06-15 11:53:50]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:WA
  • 用时:542ms
  • 内存:88996kb
  • [2024-06-15 11:50:54]
  • hack成功,自动添加数据
  • (/hack/682)
  • [2024-06-15 11:48:41]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:492ms
  • 内存:89056kb
  • [2024-06-15 11:45:20]
  • hack成功,自动添加数据
  • (/hack/681)
  • [2024-06-15 11:43:10]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:461ms
  • 内存:88972kb
  • [2024-06-15 11:39:29]
  • hack成功,自动添加数据
  • (/hack/680)
  • [2024-04-25 08:46:06]
  • 评测
  • 测评结果:100
  • 用时:563ms
  • 内存:88980kb
  • [2024-04-25 08:46:05]
  • 提交

answer


#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define debug(...) fprintf(stderr, ##__VA_ARGS__)
#else
#define endl "\n"
#define debug(...) void(0)
#endif
typedef long long LL;
template <class T>
using must_int = enable_if_t<is_integral<T>::value, int>;
template <unsigned umod>
struct modint {
  static constexpr int mod = umod;
  unsigned v;
  modint() : v(0) {}
  template <class T, must_int<T> = 0>
  modint(T x) {
    x %= mod;
    v = x < 0 ? x + mod : x;
  }
  modint operator+() const { return *this; }
  modint operator-() const { return modint() - *this; }
  friend int raw(const modint &self) { return self.v; }
  friend ostream& operator<<(ostream& os, const modint &self) { 
    return os << raw(self); 
  }
  modint &operator+=(const modint &rhs) {
    v += rhs.v;
    if (v >= umod) v -= umod;
    return *this;
  }
  modint &operator-=(const modint &rhs) {
    v -= rhs.v;
    if (v >= umod) v += umod;
    return *this;
  }
  modint &operator*=(const modint &rhs) {
    v = 1ull * v * rhs.v % umod;
    return *this;
  }
  modint &operator/=(const modint &rhs) {
    assert(rhs.v);
    return *this *= qpow(rhs, mod - 2);
  }
  template <class T, must_int<T> = 0>
  friend modint qpow(modint a, T b) {
    modint r = 1;
    for (; b; b >>= 1, a *= a)
      if (b & 1) r *= a;
    return r;
  }
  friend modint operator+(modint lhs, const modint &rhs) { return lhs += rhs; }
  friend modint operator-(modint lhs, const modint &rhs) { return lhs -= rhs; }
  friend modint operator*(modint lhs, const modint &rhs) { return lhs *= rhs; }
  friend modint operator/(modint lhs, const modint &rhs) { return lhs /= rhs; }
  bool operator==(const modint &rhs) const { return v == rhs.v; }
  bool operator!=(const modint &rhs) const { return v != rhs.v; }
};
template <class T, int B>
struct hashTable {
  vector<T> bas{1}, sum{1};
  hashTable& operator+=(int x) {
    bas.push_back(bas.back() * B);
    sum.push_back(sum.back() * B + x);
    return *this;
  }
  T operator()(int l, int r) {
    return sum[r] - sum[l - 1] * bas[r - l + 1];
  }
};
struct scope {
  int l, r;
};
int n, m, q, fans[500010];
scope a[500010];
char str[500010];
vector<int> bucs[500010], bucp[500010];
vector<tuple<int, int, int>> bucq[500010];
hashTable<modint<998244353>, 233> hsh;
void readStr() {
  string s;
  cin >> s;
  deque<char> q;
  for (char ch : s) {
    if ('a' <= ch && ch <= 'z') q.push_front(ch);
    else q.push_back(ch - 'A' + 'a');
  }
  int l = 1, r = n;
  for (int i = n; i >= 1; i--) {
    str[i] = q[i - 1];
    a[i] = scope{l, r};
    if ('a' <= s[i - 1] && s[i - 1] <= 'z') ++l;
    else --r;
  }
}
constexpr int N = 1 << 19;
int ans[N << 1];
void insert(int x, int k) { for (x += N; x; x >>= 1) ans[x] = min(ans[x], k); }
int query(int l, int r) {
  int ret = 1e9;
  for (l += N - 1, r += N + 1; l ^ r ^ 1; l >>= 1, r >>= 1) {
    if (~l & 1) ret = min(ret, ans[l ^ 1]);
    if (r & 1) ret = min(ret, ans[r ^ 1]);
  }
  return ret;
}
int main() {
#ifndef LOCAL
  cin.tie(nullptr)->sync_with_stdio(false);
#endif
  cin >> n;
  readStr();
  for (int i = 1; i <= n; i++) hsh += str[i];
  for (int i = 1; i <= n; i++) {
    int L = 1, R = n, ans = 0;
    for (int mid = (L + R) >> 1; L <= R; mid = (L + R) >> 1) {
      auto [l, r] = a[mid];
      if (i >= mid || hsh(l, r - i) == hsh(l + i, r)) ans = mid, L = mid + 1;
      else R = mid - 1;
    }
    bucs[ans].push_back(i);
  }
  cin >> m;
  for (int i = 1, x; i <= m; i++) cin >> x, bucp[x].push_back(i);
  cin >> q;
  for (int i = 1, k, l, r; i <= q; i++) cin >> k >> l >> r, bucq[k].emplace_back(l, r, i);
  memset(ans, 0x3f, sizeof ans);
  for (int i = n; i >= 1; i--) {
    for (int p : bucs[i]) {
      for (int i : bucp[p]) insert(i, p);
    }
    for (auto [l, r, id] : bucq[i]) fans[id] = query(l, r) <= i ? query(l, r) : -1;
  }
  for (int i = 1; i <= q; i++) cout << fans[i] << endl;
  return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 12624kb

input:

7
AABAAba
9
4 3 2 1 7 5 3 6 1
6
1 4 4
2 1 4
2 1 3
3 3 5
5 4 7
7 8 9

output:

1
1
2
-1
3
6

result:

ok 6 lines

Test #2:

score: 0
Accepted
time: 190ms
memory: 41684kb

input:

200000
BAbBbBabBBbbABbbaBbaaabaBBAbBbBAAAAABBaBaAAabBAAbABaaBABAabAAAbabbAaBABAbabbAAAbbbbabBBAbbBaabBAAAbBBBbBbbAbbbBabbBABaBAaAAAbBbaABabBAbAAbBbbAbAbBaabAbBBbaaaaBaBbbABBBaaabBaBABAbBabBbbAABBbaBAbaBAbAAABABAbaabbaAAaBAbAbAbBBbaaaAaBaaABBbBAAaAAAaaABbbaAbAaBbaAaaababbaBbaAAAAAAabbBaAabbbaBBAAaABb...

output:

-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
61006
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 500000 lines

Test #3:

score: 0
Accepted
time: 161ms
memory: 23036kb

input:

10
baaAaAAaAA
500000
6 8 2 3 1 8 7 3 9 4 1 6 9 4 10 10 4 3 1 7 4 3 9 7 1 2 9 3 3 1 10 8 1 6 4 1 6 10 1 5 1 8 9 9 7 3 6 3 9 1 7 6 7 7 9 10 3 2 4 10 7 3 7 1 5 3 5 1 10 1 3 2 2 4 2 3 4 10 5 2 7 10 5 6 8 9 10 6 9 7 5 4 5 4 4 2 5 8 1 9 1 2 10 8 2 5 6 6 6 4 3 1 2 2 3 5 7 4 5 7 5 8 1 8 9 7 6 3 10 7 5 4 8 8...

output:

5
4
4
2
6
3
3
4
6
3
1
6
4
5
3
5
2
5
4
4
2
5
3
5
5
1
2
5
3
5
4
3
5
6
4
5
4
6
4
6
4
1
5
4
4
3
5
3
3
4
5
5
5
4
1
6
5
5
4
4
2
4
3
5
4
5
1
5
1
1
4
4
5
4
4
3
3
4
2
4
4
4
2
4
6
5
2
5
4
3
4
2
4
5
5
4
6
1
2
6
4
5
6
1
1
3
2
3
1
4
4
3
4
4
4
3
6
5
4
5
5
4
1
2
3
4
5
4
4
4
3
6
4
4
4
2
3
3
3
3
3
6
3
5
3
4
6
3
4
5
...

result:

ok 500000 lines

Test #4:

score: 0
Accepted
time: 175ms
memory: 24740kb

input:

500
ababbBbBabaaBAbabBbbBBAAABabBbBAAABbaBbBAAbabaBaAAaabAaABBBabababAAbaaAbbAAabAAbBbaabbBbaAAABaAaBbbBbabBAABBaabbAabbBabbbAbABaBAABaBbAaaBABBbBAAbbbBabbABABAaAaAAAbaAabBbBaaaaAAAAAabaBBAAABAbbabAaBAbAaaBBbABbBBbaaAaAaBBbaBbabBbBABbaaBbAaabBABaBBbAAaaBABBAaaABAbbaaAaBaAAbAbbbbbaabBabaBbaabaAbaBaaa...

output:

386
327
309
141
424
175
186
273
45
498
99
262
478
149
424
444
49
267
233
388
359
310
203
81
498
12
97
295
400
351
352
407
310
471
291
479
448
203
267
60
223
458
421
391
5
470
212
253
99
281
167
451
154
86
299
434
370
255
383
207
258
310
487
380
6
368
235
137
334
141
50
128
29
478
448
223
466
345
407...

result:

ok 500000 lines

Test #5:

score: 0
Accepted
time: 201ms
memory: 26656kb

input:

10000
BaBbAAaaaaBAbbbbbaBbaaAbaaaabAaaaAAbabBAbaaBABaaabaAbBBaBBABAbabBAbaaAAaAABABbbbABBaBBaABbbAAbBabaAbaBBaAbabaaAAAabAbAABAabBbBaBaAaAbbBAAABbbabAaABABaBbaAABBbbBAABbbbAaABaAaaABAbbbABAabbaAaaBbbbBaBBbAaaabbaBbaaAbabBabaBaAAAbBAabbBAbabAAbbBBBbBAAaBBbBBAbaaaAbBaaBAAbbaAbbbBAbaAaaAbBBAaBabBaaaBab...

output:

-1
5219
4322
2614
7302
1876
-1
5584
2861
3586
4821
6579
6706
1605
7878
886
9218
293
167
7298
5146
6860
2921
8263
4330
9578
7472
6086
5537
4890
8285
58
9733
-1
3157
262
9533
6943
8285
2837
451
6494
7918
8912
2187
9832
4487
2077
871
210
951
1761
6892
4304
6634
9572
9544
5744
4015
7418
7804
5928
3611
8...

result:

ok 500000 lines

Test #6:

score: 0
Accepted
time: 284ms
memory: 39712kb

input:

100000
aabAbBbaBAaabbbbbaAAABaaabbBaBAAaBabbBAbBbbBbbbaaaABaaBaBbBABBBbabBAABbabbAaaaBBaAAbABaBABAABbBAbBAAAbaBaabbAAABaBAaaaBBbBbaBabAbBBaaabaaaaBbBaAaAbAbbBaABaabBbBaAAaAaaBbbAbbaaBBbbbaAaAabaBaAaaBaAAbbBabBaBAbAaabAbbbAbaAbBbaABABAaBBABAaABBBBABAaBAbbbaBbaAABBaAabaAbaAaabAAAbbbaBBbBaaaaAaaAABbBaa...

output:

35335
42708
80231
-1
52892
27828
25395
21105
26112
55093
16568
16170
-1
73256
-1
82801
58592
52120
48659
-1
-1
-1
92581
-1
67746
9463
50384
69443
71368
-1
62536
83524
71293
88216
83685
45630
5450
969
3140
19286
79236
80564
33058
44088
24142
-1
40385
68116
-1
20399
78247
52636
37514
-1
54565
44272
75...

result:

ok 500000 lines

Test #7:

score: 0
Accepted
time: 409ms
memory: 64032kb

input:

500000
AaAAaaAaaaAaaaaaAaAAAaaaaAAaAAAaaAAAaAaaaaAaAaaaAaAaAAaAAaAaaAaaAaAAAAAAAAAAAAaAaAAAaAaAAAAAaaaAaAAAaAaaaAaaAaaaaaaAaaaaAaAaaAAaAAaaAAAaAaaaaaaaAaAaAaAaaAAaaaAAaAaaAAAaaaaaaaAAaAAaAaaaaaAAaAaAaaAAaaaAAaaaAaAAaaaAaAaaAAAaaAAAaAaaaaaaaaaAaAaAaAAAaaAAAAaAaAAAAAAaAAAaAaaaaaaAAaAaaAAaAAAaaaAaAAaAA...

output:

3
13
3
4
3
3
6
3
6
131
3
3
6
4
33
5
9
3
195
105
77
4
3
3
3
3
3
4
3
3
4
3
4
3
3
3
3
4
3
3
4
4
4
4
4
3
9
3
3
23
33
3
4
3
3
3
3
4
4
3
4
4
4
3
5
1
3
5
3
74
3
23
5
3
3
4
3
3
3
3
3
6
4
3
4
3
4
4
3
4
3
3
4
7
4
3
3
4
3
13
3
4
1
6
3
5
3
3
4
4
20
4
532
4
3
3
3
6
97
4
6
3
3
4
3
4
6
3
3
3
3
3
3
4
7
3
6
4
4
4
3
...

result:

ok 500000 lines

Test #8:

score: 0
Accepted
time: 440ms
memory: 85216kb

input:

500000
BbBabaaAABbABbaAABaaAabBBABbBBBAbaAbbABAaBbbAAabAaBaabBbaABAbaAbBabbaaaaaaaaBBbbBabaaAAbaAABaAAAaAaAbbbaaAaaAaaABAAAAAbbbABaBBbBAAaAAaBbABbBaaBabaAAaBAABaAaaBBbaBaBaBaaAbBAbAaABbBaaAAAAAabBAABaaAbbBaBAAbBBaBaabBaBBAbAbaaaaAbBbaAbbaAaABBaaAbAaaBABABBaAbaBbAAbaAAbaBAbAAaabBbAaabABAaBBBAbBbbBABa...

output:

-1
125970
-1
-1
-1
435323
-1
425031
252960
236797
-1
-1
-1
334816
-1
-1
319448
234360
344601
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
38745
-1
379427
-1
325294
-1
-1
-1
365248
387079
-1
492283
346128
-1
-1
-1
356064
-1
-1
321398
-1
-1
13515
-1
338767
461122
-1
436442
-1
309126
-1
207537
-1
-1
-1
-1
381656
1079...

result:

ok 500000 lines

Test #9:

score: 0
Accepted
time: 412ms
memory: 85988kb

input:

500000
cCCBAcaAbbbBAbAAAabaCCcbbaCAacABcaCBCBCBCaacCCBbcBacAaaAABBBaCbcccBcaAcaBCBcccbCcaBAbbCAcCbcacAaAbcCbcCAcaaaBabBCbCCaCbCAcAAbAaCbcCCACbCccCACcCcCbAcAbBaCCAbacBAcaBbAcCBcAcbacCCabCAacbCCbCCCBcacCaCbCacccaCbcBaaCCaACAaaabCAbBcAAAcCaCaBcaccaacAaacbbCacBBBCBaaCBACCAaaccbBaBCacabcBbCACCbaBaCaCbAbb...

output:

-1
-1
373736
135320
-1
-1
-1
-1
-1
-1
-1
-1
106473
295826
386781
382253
-1
-1
211227
-1
-1
435332
-1
487098
-1
-1
-1
322685
387263
-1
366267
299799
-1
-1
-1
63851
301486
426183
-1
-1
-1
158872
299489
-1
158501
-1
-1
-1
421755
-1
-1
-1
-1
-1
-1
-1
379236
-1
-1
162368
-1
20735
-1
379535
408080
43142
-...

result:

ok 500000 lines

Test #10:

score: 0
Accepted
time: 417ms
memory: 89056kb

input:

500000
CGLmxIQvAprgtdDDuZvZDwKvAyqsptLBKwehlQYMUAGNZYjIBwQJotGzdfdJefPNFsvQmsQMQHDThKCosCRLBfDPBmYrOzoPCOmRFKyCEwmCYZrZpzNeUuHsUBqpXrqKbmoNqsUAIGBCNFeHnXUeGaUAKLXrjtcHVKgdmNavqTnAqAIcqyujjfqPDbrQaYwiqKQNMQMCMjxcxVgHfoMdlIjsRbKBADzljmfNENfFOXjVCcUAmnqgcRKfIqCeQMXcqqTtgDSjYpDrKCbAIvpYqtxDCmniGfURGBNPg...

output:

-1
-1
-1
-1
153175
-1
-1
160471
8265
-1
-1
304616
-1
-1
457941
-1
136029
239352
-1
-1
248379
201699
-1
376599
218943
-1
-1
-1
-1
-1
283494
441809
-1
471567
-1
-1
-1
40751
-1
-1
181033
-1
-1
-1
-1
-1
-1
4025
-1
398460
-1
-1
339034
-1
-1
-1
89916
-1
-1
-1
-1
-1
-1
-1
203747
160541
-1
-1
-1
-1
-1
-1
-1...

result:

ok 500000 lines

Test #11:

score: 0
Accepted
time: 472ms
memory: 85052kb

input:

500000
iPpiIpiPIPIPpipGagAPIpPIipPiIPIpPIiPIPpIPGAipPipipIiPpaIPgIpPIiPpIPIiPpiIPpGipiApiPIpiPpagIpPiIpiPIpPipLmMPlpipIPIiPpIPiGAPIpiPpIPagpIPipipIiPpIPiIPpiIPGAPpiIpPiIPpagpIPIiPIpipipPipiIpiPIpPiGApPIaPIgPIpipPiIPIpPiIpipPiIpPGAPipIPIipagPpIiPIpPIipPIPipiIpPipGipipAPagpiIPpIiPpIPIipipiPIPpiIpipaPI...

output:

44808
330831
40007
156828
89616
-1
44808
-1
156828
44808
22404
44808
44808
156828
156828
44808
745
22404
119492
37342
224040
-1
156828
40427
-1
44808
156828
-1
44808
44808
44808
44808
-1
156828
-1
22404
44808
-1
156828
22404
44808
37237
-1
44808
44808
44808
44808
44808
22404
44808
156828
22404
44808...

result:

ok 500000 lines

Test #12:

score: 0
Accepted
time: 492ms
memory: 85384kb

input:

500000
xEGXEGgexXEGgXEGexXEgexGXEGgexXEgGXexEGXEgexgexgeGXEGxgXEGXexgexgEGexXgeEGXxgexgexEgexgGexXgexgeExGXEGgXeExGgexXgEGeXxEGgexXgexgEexGXgEGexgexXgexgEGeXxgeEGXxgEexGXgexgEGeXxgexEgeGXxgexEGXgexgEexgeGxXEgGeXEGxgexgexgeXEGxXgexEGgXEGexXgeEGxgXexgexEGgXexEGgeXxEGXgexEgexGgXEGeXxgeExGXEGXgEexGgexgX...

output:

6
51880
51880
156658
51880
103760
103760
103760
58694
6
51880
51880
170203
155640
103760
160123
51880
6
271827
103760
51880
51880
259400
155640
84830
51880
259400
269226
103760
51880
82478
51880
51880
51880
76292
51880
103760
103760
103760
6
6
103760
51880
51880
51880
95600
103760
103760
51880
51880...

result:

ok 500000 lines

Test #13:

score: 0
Accepted
time: 448ms
memory: 85732kb

input:

500000
qrbBRqrbQqrbBRQqrbBRqQBRrbqQBRrQbqBrRQbBRqQrbBqRrQBbRqrbqrbQBRqQBRQBrbRqQrbqBRrQBRbQBRqQrBRQBbRQqrbqrBbqrRQBRQbBRQBqrRQBbRQBqRQrBRQbBqrbqrRbqrbQBRqQBrRQBbRqQrBRQBRQBbRQBRQqBRQrBbRQBRQqrbBRqQBRQBrRQbBRqQrBbqRrQBbqRrbqrbqrQbqBRQBrbRqQBrbRqQrbqBrRbqrQBRQBbRqQBRQBrbqrRbQBqRQBRrQBRQBbqrbRqrQbBRQBq...

output:

105840
35280
25200
105840
35280
25200
25200
25200
5040
25200
5040
5973
5040
5040
5040
25200
25200
55440
25200
5040
5040
27
5040
5040
35280
5040
5040
5040
25200
231840
5040
5040
126000
67338
50400
236880
5040
5040
5040
196059
201600
5040
5040
100800
15120
25200
5040
5040
5040
95760
5040
25200
5040
25...

result:

ok 500000 lines

Test #14:

score: 0
Accepted
time: 459ms
memory: 85380kb

input:

500000
YxlLXyxYlyLxXYLXlYyLxlyXYxLXlyYLXxYlyxlLyxlyXYLxXYLXlYyLXxlYyLxXlyYLXYxlyLXxlyYLXxYlLXyYLXYLxXYLlXyxYlLyxXlyYxLXlYyLxXlYLXyxYLlyXYxlyLXYxLXYLlyxlyxXYLXYlLXyYxLlyxXlYyLxlyXxYLXlyYLxXYLlXYyLXxlyYxLlXyxYlyLxlXYyxlLXyYLXYLxlyXYxLlXyYxlyxLlXYLXYLyxXlYLyxXYlyxlLXyxYLXlyxlYyxLlyxlyXxYLXYLXlyYLxlyXxl...

output:

45
34211
53269
102633
102633
465625
183048
34211
68422
387846
43885
9
34211
34211
68422
34211
34211
68422
34211
34211
68422
102633
34211
34211
58093
34211
385830
15
34211
34211
6
15
34211
68422
68422
34211
102633
102633
102633
102633
34211
68422
68422
34211
195528
102633
102633
34211
102633
34211
34...

result:

ok 500000 lines

Test #15:

score: 0
Accepted
time: 439ms
memory: 84940kb

input:

500000
ZTOoZTtzOotZzTOZTotzoOtzotZzotzTotOZzTOZoTOZtTOzZTotOZzotTzOotZzotTzOotzZoTtzOoZtzToOtzotzZTOZoTOZTtzotOZzTOoZTOZTtzOoZTtzotOZzTOZTotOZTzoOtZzTOoZTOtZTzoOZtzoTtzOZotzTOZTOoZTOtZzotTzOotzZToOtZzoTtzoOtzotzoZTOZTOtzoZTtzoOZtTOzotzotzZotTOzoZTOtZzTOZoTOZtTOZzTOotZzoTOtzotzZTotOzotZTzOotzotzotzZo...

output:

346550
9
717
382207
9
346550
3
3
4392
57
9
346550
9
9
9
3
3
60
3
3
57
346550
9
346550
9
381145
3
3
9
9
9
3
3
346550
9
346550
3
9
66
346550
3
346550
3
9
3
3
9
3
9
3
9
36
3
9
402727
60
346550
3
69
567
346550
36
346550
3
346550
60
60
9
346550
36
346550
346550
9
9
3
3
3
261
3
9
3
3
3
9
36
346550
9
3
3
5...

result:

ok 500000 lines

Test #16:

score: 0
Accepted
time: 429ms
memory: 88208kb

input:

500000
yLKXXBqjNaMHkMOQjjEMxvmeqVXomJhJmKAnJbxQxklyqjYLalyqjaAkJjjQYLxKvmeXXqomhmBNMnHMObQxxklyEqMVjakXjjJJKAjKsSkaJviPHIhVpjskakjAjKSxJvJmeJKAJQYLqomhmnbxxklKXXByqNjaMlyHqMOjakjjQxEvmMVeXqJomJhKAmJnbQxxYLAklyqJjaQkYLKXjjXxvBmeNMHqMomOsyAwzaZWoYmSMOhmnQEMbVXJxJKAxJQklYLyKqjaXlyXqBjaNMkjjxvHMmeOQEMqo...

output:

-1
245886
4551
245886
-1
-1
-1
-1
61466
122938
184410
245886
122938
-1
245886
61466
-1
-1
-1
53779
122938
-1
-1
245886
122938
245886
245886
245886
242047
245886
245886
270621
61466
-1
61466
-1
437033
-1
414934
74683
245886
-1
15362
-1
122938
115732
245886
169038
-1
184410
245886
245886
138306
-1
-1
...

result:

ok 500000 lines

Test #17:

score: 0
Accepted
time: 420ms
memory: 88876kb

input:

500000
fvdPzzBxrSQzTmWNsiWjWXCVDCTMHGaEAPodRQkGeMBBoltAFUuDcuJnhzJusCHahGvVmCJTyqmflnKaKovwgfnvbSEjezoqMMAdyBScHCavjmXpTqvsAoesdPEZrovZonAXNxZiDFqEUzlYhjaHJjkuHtpUGHtwBDapFQyUClAlCMwVfEmfiKFpLjdzPpRXvZONsQrUMybWSCQrBpnyxblhkpQgpPqbqGcPKHLBsXYNPRwBmYuqnoRzxrpSlVfPZkDeJPvmIFMcFWLaLcuYqfdPbAWTPhgTuhjhy...

output:

-1
-1
66261
-1
-1
-1
54673
164023
-1
307800
328048
-1
328048
-1
-1
328048
328048
91122
18224
-1
164023
54673
336144
328048
328048
164023
328048
164023
164023
8100
109346
-1
328048
328048
164023
18224
328048
-1
-1
-1
164023
-1
328048
355048
328048
164023
54673
164023
127570
23632
164023
66826
328048
...

result:

ok 500000 lines

Test #18:

score: 0
Accepted
time: 420ms
memory: 89052kb

input:

500000
OxyEwnKSyZiIpJyBHFAgRnsjRJpDyIqArfNAmGgMsmjJzJPAKBjQACZkduhdALitDtqgFatXXIsqrmmalgxgcDbpNjNWEpTiaTxIibQHhqWvThNRsmQhvuGTxWzwYMlwFrIlnBPIUQNkqamLUzEfRpZXjICHVJWioGrxAcBRcVNHrclGHBvZMYsfNblHXOSIaLJztIoMZNISeeUvaCNpEdQXxtyyGOpPYYoTXDgPxAqVEEOTencZALBuFSsiVLnzmCRCCiXRjliOIJsPFZoMxhnAQymzbKNhghnvr...

output:

-1
145408
107879
107879
107879
215758
215758
107879
-1
-1
107879
-1
4690
107879
107879
-1
107879
4690
107879
107879
215758
23450
107879
107879
436206
215758
-1
4690
107879
201688
4690
107879
107879
107879
-1
107879
107879
107879
215758
4690
107879
-1
107879
107879
4690
159478
159478
-1
-1
-1
4690
46...

result:

ok 500000 lines

Test #19:

score: 0
Accepted
time: 441ms
memory: 89020kb

input:

500000
cqjeHbcCliPAWYaOwEKhCTcKpsaCpRovzkvBZQvuRwJZdrcXnMXoArQwKKWbDYHbLOlPyDbIvzoEGvaLuwRFBaODgsbsGiPJuFLOWwrCDzuYvdWiyxBKeSENjsedxnGMDGnshuZuFotxNxkqVnDbJCfZvvtFqzmlupwXPGGMXmUGsFinJwsWwsmZsmpwjovEshZRSyKBThVDkRPrBueoHZLkSzVPuAlQMzISmLXoVfrjRrYjZIFOhZVknOFeIXeyETNiyjyDTqwSZBBxcIbqBYMBTToKYZYuZUWbW...

output:

120404
298
76592
76592
-1
-1
129940
76592
76592
76592
102822
298
76592
76592
-1
308156
76592
306368
76592
76592
229776
229776
76592
141264
229776
76592
246172
76592
244384
76592
25628
-1
76592
298
76592
76592
-1
-1
76592
229776
229776
298
76592
76592
306368
76592
144244
76592
76592
76592
76592
76592...

result:

ok 500000 lines

Test #20:

score: 0
Accepted
time: 456ms
memory: 88872kb

input:

500000
zJSDGMwjSZPBuriYzqHRrmUjUluHxlmLzmiKuSAEvVwytBSKsTLVpVqCrHswOVjoETKLQveGZVWFXJWTTlBISvdlgZMIbUziGmUuUBjRynzwCwhpREjIKrROMhwRYIASIIPhOHydgsHuNDSXLKWLphUrukopmFWaMuzOCDBahkSyuunXTpkzJgQsEHLzPVLJdcPmkMlYgNQCGPEgLVwpiRoVdssBKgfXHCdYmcZBLIrlPIBwxMexgiUwkkTSByULCOgYIPbvdrRwpdDYsxHMcIdTlywevhqLGKKxc...

output:

273761
-1
460997
368796
61460
32093
-1
-1
35368
307330
-1
-1
-1
-1
-1
-1
307330
-1
-1
61460
307330
184392
61460
368796
307330
245861
-1
61460
-1
44803
-1
7480
61460
-1
245861
61460
-1
-1
-1
-1
-1
245861
-1
-1
476656
245861
61460
245861
184392
368796
232518
-1
-1
61460
-1
170173
209677
-1
368796
-1
-...

result:

ok 500000 lines

Test #21:

score: 0
Accepted
time: 456ms
memory: 88864kb

input:

500000
MDjkTLdPGcfXBrQMJqoTHPOfTBkJQWCwDSwGhfFYpDuEJJaRozaIGlFBlseQsYZHhdTMcAPtfnThacaSUeJwnbXUNPrLmaZOYmoygctGyWxuqwtCobhfXtOGRGnCwZhAyQuHXtBDCEBshtxeEresFlGfFhAIcMXVQFGqXPJIrfXyXClGRLuHpfJbFkkRtteDyFQHcYjFnXVQEVJblhKzvvxSZvljcnYvFnpyaeTCWLjxdDGlRoeqxrMeHwDCFvzllPQNpvFpAlkKoUZvvArKCeYptVEWPZOqFyJnb...

output:

-1
-1
-1
-1
123903
-1
32135
123903
-1
-1
123903
390428
123903
123903
123903
123903
76618
430258
-1
-1
220654
-1
-1
-1
-1
123903
-1
460164
-1
-1
-1
123903
123903
440180
123903
-1
376078
-1
123903
-1
440
123903
-1
-1
-1
-1
123903
-1
123903
-1
123903
123903
397084
-1
-1
-1
123903
90602
-1
123903
-1
-1
...

result:

ok 500000 lines

Test #22:

score: 0
Accepted
time: 446ms
memory: 88900kb

input:

500000
tienVCfmBNyTELlSjnlcFAoVRcZQfgtqahvbkskkraKctsKOzlmwJpvecOsYaOMjcciazuuovmPoFhJjvKiOxjCdIIncxFIYGQHydWAfPoHQssWLhJxmpyYABQwKtrvminabgFAkzwwoMzvsMKrwPAtGnyHpdMFytkRtsMHrpDWNQDyteEiAXZnLtyXhjeAocTltvxdjPDQouBtMXdyiDVRTzgViMLiEZzHHVLbxeIMJfzIiAJmYjVhbaMBXrJvGjlFYYZlPRCdXrjXXdfWSxdgZkoHCaLpUfjoui...

output:

-1
-1
-1
-1
-1
483842
-1
493756
-1
-1
-1
-1
166685
-1
-1
169267
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
482709
-1
-1
-1
-1
180170
-1
485575
-1
478622
47650
-1
295482
-1
-1
-1
-1
-1
-1
-1
-1
209539
-1
-1
-1
-1
-1
-1
105462
-1
-1
193867
-1
-1
364849
27696
-1
-1
-1
-1
-1
-1
203538
-1
237201
380269
-1
157729
-1
5...

result:

ok 500000 lines

Test #23:

score: 0
Accepted
time: 451ms
memory: 82540kb

input:

500000
RNRnNrRnrNnrRNRNnRNRrNnrRNnRrNRnrNnrnRrNnrnRrNnrnrnrnrRNRnrNnRNRNrRNnrnRNrRNRnNrRnrNnrnRrNRNnRrNnrnRrNRNRNRnrNnRrNRnrnNrnRrNRNRnrnNRrNnrnrRnrNnRrnrnrNnrRNRNRNRNnrRNnrnrnrRNnRNrnrRNRnrNnrRNnRrnrNRnrNnRNRNRrNnrnrRNRnrNRNRNnrRNRnrNnRrNnRNrnRrNnRNrnRNRNrRNRNRNnrnrnrRnNrnrnrnrnrnRNrnrRnrNnrnRNRNrR...

output:

14
2
4
130
8
84
4
4
64
4
4
2
2
8
2
4
4
4
2
8
22
2
4
14
2
10
16
2
136
4
16
22
4
8
2
8
2
2
28
2
4
4
4
8
2
2
4
2
10
4
22
4
2
26
22
64
2
8
8
4
2
2
3840
14
2
22
8
158
8
22
14
8
2
26
22
40
22
4
8
2
28
4
2
22
2
2
8
86
4
2
8
40
10
16
4
16
4
2
2
22
26
26
8
8
64
2
8
4
8
14
10
50
4
14
2
260
14
4
4
28
2
14
4
4
...

result:

ok 500000 lines

Test #24:

score: 0
Accepted
time: 464ms
memory: 86876kb

input:

500000
EHpAuUahepPuahepEHuaheAUpuahePEpuHaAUhePEHAUpPEuHaAhepuUPahEeHpuaAhUPEepuaHhAUPEeHpuAUPEaheHAUpuaPhEepHAuUahepuPaEhHAUepPuaEhepHAUuPEahHAUPEeHApUuPaEHAUhePpuEaHAUPheEHpuAaUPheEHpuaAUhePEpHAuaheUPpuEHAaheUPpEHuahAepUPEuHaheApUuahPeEHApuaUhePpuaheEpuHaAUhePpuEHahepAUPuEHahepAUuPaheEpHuaAheUpuPa...

output:

30
5
5
120
325
30
5
25
5
5
5
5
5
5
25
5
5
5
5
1040
10
5
5
35
5
5
25
5
105
5
5
165
5
5
5
5
175
5
5
70
30
5
5
5
5
5
5
5
5
5
5
5
70
60
5
5
5
290
1240
25
60
5
5
180
5
5
5
5
5
5
5
5
5
245
125
5
5
105
5
5
5
5
5
5
25
5
5
25
5
5
1695
25
60
5
60
5
5
30
5
5
50
25
5
105
5
5
310
5
5
475
35
5
5
1010
405
30
5
5
1...

result:

ok 500000 lines

Test #25:

score: 0
Accepted
time: 429ms
memory: 88640kb

input:

500000
KognZrfuByniLmlzUWXMXiQBhhviBucuWhXknIcaVgRmwGxSxTXXWMGACtsgNrvixKwHUbCUbqxmxwIuVHlbzHIkognrZfLMIuNYUyFRniNmlzihhviGucuOhkKncZaBLgmUWwXxMxXQBBtWXsIgVRGrSTvXXiWxMGAwCNKHbUbCUqIxmVxwHuHIlbzkZoLMgnrINfuYyniUFRmlNziGOhKhZviBuLUcWuhXMkXQnBcBWXaIVgRGSmwxTXxXtsgWrMvGiAxwCNbbKHqUxmxCwUIVulHHbzIkZLMIo...

output:

50
50
50
250
50
50
100
200
50
200
50
50
100
250
200
200
200
50
50
250
50
50
50
650
700
200
50
200
50
200
50
250
200
100
50
50
50
200
50
50
200
50
100
250
100
50
200
250
50
50
50
250
50
200
100
50
250
50
50
200
1850
800
200
200
50
50
200
200
50
400
200
50
50
200
50
50
200
50
250
200
200
50
250
50
50
...

result:

ok 500000 lines

Test #26:

score: 0
Accepted
time: 415ms
memory: 88752kb

input:

500000
oiitOIAlUbPDgRSEDRhsNyNDWQEEGEuXvPqeAhDGDIrVpCmwUobLhdgKGAAHLZkElazCcFJkyTxeJHJKZZDlyARjIjBYsYskqsCKiKatyFrAedMAgAIQwFyfjhdTFHGHqwPmsopCLTTDlwZQLmJVbScEMkqSjNCZBUHzKzoRhJmkEiNSYLmMRvirRYMCYbdmZJmaspePELRhgEmaGPieASsYhfRMPfGWXJaTOWZgIvYLpMqAYfkbenJMrhNUOOrlFPaIiIbjwVPaZrTwqbIrfVRnZsEtYFGbcLAvG...

output:

789
12624
789
789
789
789
2367
789
789
2367
789
133341
789
2367
789
8679
789
789
8679
789
22881
8679
789
789
3945
41028
789
789
2367
2367
789
3945
8679
2367
789
3945
789
2367
2367
789
40239
2367
789
789
789
2367
789
2367
789
789
789
789
2367
13413
2367
28404
3945
789
789
789
2367
6312
3945
2367
2367...

result:

ok 500000 lines

Test #27:

score: 0
Accepted
time: 435ms
memory: 88824kb

input:

500000
qlQYWJcmNznENIsymkmIccjlQBhaCDtrmXbcBkmLdeueNAQmdPwoQpquCHPYVtMcccEmxDEPToiUZEDVVAXejvXZCpihVhvxMqAGeSmWtsrUDOCVWpwRMQWSuXzxqHxWKdvJAHaMUYLcQlPsqOJBFAIadSaoQkOGsNtxtKoiCLiuFvJUJBrhNhjAYHhyNtaAOEXblLmKrxIeAMdUrUfzfBZgLKKJbAwSEkrXhkMVUEpgnpXMrodUfowRtwpDKOCjyYcEPqarROpGwouPZEAWOKAYWeieAgHqKqaYY...

output:

-1
39993
13331
53324
13331
-1
13331
13331
93317
39993
39993
93317
26662
13331
93317
39993
39993
-1
13331
93317
39993
207
13331
13331
-1
-1
226627
13331
13331
13331
39993
13331
13331
13331
13331
13331
93317
13331
-1
13331
13331
93317
13331
67335
-1
226627
226627
13331
13331
293282
13331
13331
13331
1...

result:

ok 500000 lines

Test #28:

score: 0
Accepted
time: 394ms
memory: 89040kb

input:

500000
fugSAEACqAiikPUTpsYFsqoGUoCZAJlrZlxxkXwcNyOIDIDdFRBibCXwrPdAgWCeUglZKTLsbPypyfDDUUqQLAgjqqxHitDoaaiRNqXpOMkxKvwJDzCuCMKrQQuawElDBoJrywzZMBumbMwpGNTuoiYdOjQrJaDjTEEkBtDVqmsUzHGlbGzVNaMJWrrjVlHEgZejYtwtgDMtIgqLokrXzkeMNmHvtciNucwKnBoKxhCCBAZdBHHWSwQuHOwZVbDAtjMudLdNFvizWbZZexEYqwrfxFIrMhAYFLDWR...

output:

-1
87352
-1
107725
-1
174704
141254
-1
-1
87352
-1
174704
-1
-1
87352
87352
87352
87352
87352
87352
262056
174704
-1
262056
87352
87352
-1
65859
-1
174704
87352
-1
87352
174704
-1
87352
-1
-1
-1
87352
174704
262056
-1
-1
-1
87352
87352
-1
-1
87352
87352
87352
-1
262056
-1
76299
87352
87352
-1
-1
262...

result:

ok 500000 lines

Test #29:

score: 0
Accepted
time: 283ms
memory: 39620kb

input:

100000
aBAbAbaBAbaBaBbAbAaBaBbAaBbAAbBaBbaAAabBaABbBbAaaABbbBAabBAaAabBaAbBbBaABbAaaABbBbaAAabBaAbBBbaAaAbBbBAaBbaAaABbbBaAAaBbAabBbBAabBAaAaBbaABbBbaAaAbBbBaAbBAaAaBbBaAbAbBabAaBBaAbAbBaaBbAaBbAAbBaAbaBaBAbBaAbAbaBaBAbbAaBAbBaaBbAbBAaaABbaABbbBaAaAbBBbAabBaAAabBaAbBbBaAbBaAaAbBbBaAaABbAabBbBaAbAaBa...

output:

41792
-1
69632
-1
49152
61440
61440
50784
84320
24672
94208
37056
31392
-1
81920
61440
69632
41216
28416
83430
6992
8092
3072
49152
3072
72784
49217
41984
24576
47616
47776
2688
4432
8192
49152
56320
74752
49152
81920
77824
24576
81920
49152
77824
70382
5120
8192
81920
19800
-1
89088
84450
49152
819...

result:

ok 500000 lines

Test #30:

score: 0
Accepted
time: 263ms
memory: 37748kb

input:

100000
lLxWiZDecQeVoBrTgZyCCjPjxAtWySpEkSbZgSQnFtKcrTqRMfCqzAYgTbgTNyuKzGlBQaCndJNdrAgIsTzFbMPpGunTNaPoiZcRLauQDtEwiDHlUzFurLiGbPGpSxhCIhkKfOiEjNRpeWoYMyjPTrSfdVgZYgWoYjbCtYNzyCWrrKDrJgXkpHCxwKWkXzTnqEaAOxAtQonLgDvRqHpWmUVyzCCjAnGgQxbUMvmRiLcUuMdLYpOlTnIrSmqBZyXbDokKmMHcPmbDuYNjYonRHeReUhzQIseUoVwBT...

output:

316
316
316
948
316
948
1264
2212
316
948
948
316
1264
316
1264
316
316
5688
948
948
290
316
316
948
316
948
316
316
316
632
316
1896
948
316
948
316
1580
316
316
316
948
316
316
316
948
12640
1264
316
4424
316
948
2528
316
316
316
316
948
316
316
316
316
4424
316
316
316
316
316
948
14220
316
316
3...

result:

ok 500000 lines

Test #31:

score: 0
Accepted
time: 287ms
memory: 39624kb

input:

100000
cBdCdCDbbCdCCbcDDcBcbCBdCcbBCcdCbCcDBbBccDCbDcdBcCBdCdBdbBDdBddDcDdDBbBdDcDcbCBdCdbBDcBbCbdBCcBdcCdDCcDbcDbCbBDddCdDBdDdBbdBCdDccBdDcBbBBdcDbCcCDbDdBdBcbCcBCddBCbbDbBcCBcDbcBdDDcBdDdBdBbbCCbBddCbCDdbCCdcBDcCdbBcCBcDcBbbBDbCdDbCdcDCbDdbBBccCdCbDbDBcBbBcCbbCCbdDcDDbbDbBcBBbcCcBbCDccBBcCdBbcCBcc...

output:

60335
26244
59952
-1
32542
11903
-1
10286
34263
-1
35366
82096
29740
18866
-1
97496
37771
27162
15429
89873
6257
60770
4593
36031
89997
64293
-1
28662
30279
54800
15500
46842
81687
-1
45935
-1
-1
-1
59478
69530
-1
87402
37518
18571
-1
66522
10583
36533
-1
89997
32197
3588
86210
89997
58109
51898
386...

result:

ok 500000 lines

Test #32:

score: 0
Accepted
time: 268ms
memory: 35680kb

input:

100000
aAAaAaAaAaaAAaaAAaaAAaAaaAaAAaAaaAAaaAAaAaaAAaaAAaaAAaAaAaAaaAAaAaAaaAaAaAaAAaAaaAaAaAaAAaAaaAAaAaaAAaaAAaaAaAAaaAaAAaAaaAAaaAAaAaaAaAAaAaaAaAAaAaaAAaaAaAAaAaaAAaAaAaaAaAAaaAaAaAaAaAAaAaAaAaAaaAAaAaAaAaAaAaAaAaAaAaaAaAAaaAAaaAaAaAAaAaaAAaaAaAaAAaAaAaAaaAAaAaAaaAAaAaaAaAAaAaAaAaaAAaaAAaAaAaaAA...

output:

1
1
1
2
1
1
67
1
1
1
1
2
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
4
5
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
5
1
1
9
1
1
1
1
1
1
1
1
1
1
56
2
5
1
4
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
5
1
7
5
1
1
2
1
1
1
2318
2
1
1
1
1
1
4
1
1
6
2
1
7
1
2
2
18
2
1
1
1
1
2
1
1
1
1
6
1
1
1
1
16
5
1
1
1
10
1
29
1
2
7
1
1
1
1
...

result:

ok 500000 lines

Test #33:

score: 0
Accepted
time: 344ms
memory: 49612kb

input:

200000
bBaAAaBbaAbBBbAaaAbBBbaABbaAaABbaABbBbaABbAaAabBbBAaaAbBaAbBBbaAaBAbAbBabAaBaBAbAbaBaBAbBaAbAbBaAbBaBaAbBabAAbaBBabAAbaBbABaaBAbAbaBBaAbBabAbABaBaAbbAaBAbBaBabABabAbAaBAbBaBabAAbaBBabAaBAbAbaBbABaaBAbBabAbAaBaBAbAbaBAbBaBaAbBaAbAbaBbAaBaBbAAbBaaBbABabAAbBaBaAbbABabAaBaBbAAbaBBaAbaBbAbAaBbABaa...

output:

48032
165609
103424
55696
196608
136156
16384
108917
123520
93184
100096
65152
13824
36864
163840
65536
122880
139264
73728
123424
79872
9472
163840
155648
-1
83968
99328
65536
49152
-1
36864
40400
109568
-1
12288
100406
-1
79872
5376
16384
-1
10930
160768
83776
79872
139264
39200
122880
16384
16384...

result:

ok 500000 lines

Test #34:

score: 0
Accepted
time: 331ms
memory: 51704kb

input:

200000
sYcEeSbHgPMrOmGsKijZqVqJJvxIDwVoSaMrLlKjoPnGVleNaCNcAyyPpXMdDshHhJCucBlRgObBpKuEkVfJGkJgJtXoYwkZKlfWDsWaHeZgiNpPtQKkdHpOdHAiElIvwGdSuSyISswJEbkWPaVfNcCbMmjJqUsJRgnFInoWMzLyUzIaaVjUhHKhzAEkPzKoiLGkuNPmYpQfmULjDenUqOIzhWyHPvhWWhLpGyaXXmZxjSdGJmAhnAMxCeuLGuhTGyKjJzqBZilPZvXoqDVwfWWcCddTJanMyIVtg...

output:

2235
2235
6258
894
447
447
5811
447
2235
4470
447
447
2235
447
-1
894
2235
-1
894
894
447
894
447
8046
447
447
447
894
447
447
447
2235
447
2235
6258
894
1788
2235
4461
894
894
447
447
9834
447
13857
447
2235
2235
447
447
447
447
447
5811
894
447
447
447
1788
447
894
6258
894
1788
2235
447
2235
447
...

result:

ok 500000 lines

Test #35:

score: 0
Accepted
time: 337ms
memory: 50648kb

input:

200000
dDdCCdCcbBdDDcDdcDCdDcBcbDDbBcdCdBcBBcdCcCdCBdcDbCDdCddCDbbDBdBcbCBbCcbBcCDbCbcCDbdBbDBcDbbBCbcBdBdCBdDcdBBcDcdCCdcCcDbDcDbBcDcBBbdDBbdCcDCbcDbCBdDdCdCcBbbCDbbBBcDcDdDbCdbCcBDbCbcBdBdCBbBbcDbDDcbCbDDdBbBdCddBCbdCbBBbdCCdCdbDCbcCBdcCCbdDcDCbbBBdCdbBDcDbCbBdbCBcdCcBDcdDcBBdCdcDCcDdBddDbCBbcDCdD...

output:

18438
118579
-1
123399
-1
117797
-1
-1
-1
-1
123399
29982
131480
123399
123399
17985
63523
-1
123399
-1
-1
123399
154129
123399
103007
123399
69646
150053
-1
15267
17387
-1
123399
123399
123399
123169
93530
110775
-1
-1
123399
-1
123399
68432
86994
-1
104832
-1
123399
-1
55755
-1
103974
123399
-1
-1...

result:

ok 500000 lines

Test #36:

score: 0
Accepted
time: 301ms
memory: 43108kb

input:

200000
aAAaAaAaaAAaaAAaAaaAaAAaaAAaAaAaAaaAaAAaaAAaAaaAAaaAAaaAaAAaAaaAAaAaaAaAaAaAAaAaaAAaAaAaAaaAAaAaaAaAAaAaAaaAaAaAAaaAaAaAaAAaAaaAAaAaaAaAaAaAAaAaaAAaaAAaaAaAaAaAAaaAAaaAAaaAaAAaaAaAaAaAAaaAAaaAAaAaAaaAaAAaaAAaaAAaaAaAaAaAAaaAaAAaaAAaaAaAaAAaaAaAaAAaaAAaAaaAAaaAAaAaAaAaAaaAaAaAaAAaAaAaAaAaaAAaa...

output:

1
1
1
1
1
6
9
2
1
1
1
1
1
7
1
1
3
2
2
1
2
1
8
1
2
1
1
3
2
2
2
1
1
2
1
2
1
1
2
21
30
8
1
1
2
1
2
2
1
2
1
2
2
2
1
1
2
1
2
6
2
1
1
1
7
18
1
15
3
1
2
1
1
17
1
3
1
1
2
65
1
1
1
3
1
3
1
2
2
2
1
1
1
1
1
2
2
1
1
2
2
1
1
13
2
2
2
2
1
1
1
2
3
1
1
1
3
1
1
8
1
2
1
2
2
1
2
2
6
2
2
1
1
2
1
5
1
2
1
2
1
2
2
12
5
1
...

result:

ok 500000 lines

Test #37:

score: 0
Accepted
time: 446ms
memory: 83764kb

input:

500000
bABaBabABaAbbABaBaAbbABaAbaBBabAbAaBaBAbaBbAAbaBBabAAbBabAaBBabAaBAbbABaAbaBaBbAbABaaBbAaBAbbABaAabBBbaABbaAaAbBBbAaaABbAaBbbBaABbAaAaBbAabBbBaAAabBBbAaBbAaaABbBabAbABaAbaBBaAbbAaBaBAbBaAbbABaAbaBaBbAaBAbAbBaaBbAbAaBbAaBBaAbBbAaAaBbaAbBBbAaAaBbBbAabBAaAabBaABbBbAabBAaaABbBbaAaAbBaAbBBbaAbABaB...

output:

131072
99728
-1
-1
219136
330088
131072
-1
393216
-1
-1
53376
393216
-1
387382
319488
311296
117760
393216
-1
-1
372736
393216
20480
-1
405568
-1
-1
-1
415264
393216
235520
-1
-1
131072
294912
-1
119990
131072
131072
131072
-1
131072
75951
378169
131072
-1
117148
38912
106448
131072
81600
197632
131...

result:

ok 500000 lines

Test #38:

score: 0
Accepted
time: 420ms
memory: 88728kb

input:

500000
sIcAhAkNiTzUxKErTvkVvCwLnNnKKefUeNRsTpSagKVfAkxDHkNqRrhMaEjJVpXbwHJfDstFJqJhPzDkHyWaHhtEGsPiBaqLrZZbReoVNnaMwSWtjFcJnPIuiChKLnpFDkmLIxGjYwdEeRKmLcjTZsFhXxcFAkIqkKDhtIjUSbbAPsgAyEkYtBiVkZZcyAwUvPVnVoJwbKbKVbxAvAEloTwUVrzAStrQDtfSwNjOQmQkfBeADjeLhQJiYmQcyUCwdMFuTrTwDmTzvNUcfWFfGvtYiOThDksGDxoSF...

output:

707
707
16968
1414
707
9191
4242
1414
707
9191
707
-1
4949
1414
14140
-1
14140
1414
4949
1414
147056
707
707
707
1414
707
707
9191
11312
1414
707
1414
1414
1414
1414
707
22624
1414
22624
707
4242
1414
1414
1414
1414
707
707
707
707
1414
1784
707
4949
707
707
6363
4949
707
9191
1414
707
-1
1414
19796...

result:

ok 500000 lines

Test #39:

score: 0
Accepted
time: 451ms
memory: 82908kb

input:

500000
dCcDcDdDDcdCcCBddDCdDdbDbBDdDcDcbDCccDCcCdBbcDbDDccCcBbCcDDbcCCbBcBbcCDbcCdDDcBcdCCdDdBdDdbDcCbCCccDCccCdDDcbBdCBbdDdDcBBbdCdCcDCbCdDbbBcDDbcCCbcDBdCdCddCDbbDBddCcDCdcCbCCddDDcbDDccCDdcBDbdBbCBdcBcDbDdDdCbCdBcDCbDdbDcCcBdBBbdCDbDcCcCcdDDdbBCdcDBcdCdDcCbBcDbDbDbCcCdBbCbCcDBdCcCbdDBdDbCbcCDcBcB...

output:

72600
80779
147408
136113
36204
43447
82787
320074
120372
350810
71174
-1
16045
42393
19563
340637
272620
313089
358544
44566
48112
286531
116075
281940
73893
360932
57565
375750
353884
116407
28246
333542
331122
75866
59736
85377
86517
333183
102028
343223
136913
132671
147233
119888
316948
353428
...

result:

ok 500000 lines

Test #40:

score: 0
Accepted
time: 403ms
memory: 64524kb

input:

500000
aAAaaAaAaAAaaAAaAaAaaAAaaAAaAaAaaAaAaAAaaAAaAaAaaAaAaAAaaAaAaAAaaAAaaAAaaAAaaAAaAaaAaAAaaAAaAaAaaAaAaAAaaAAaaAaAAaAaAaaAaAAaaAAaAaAaAaAaaAAaaAaAAaaAaAaAaAAaAaaAaAaAAaaAaAaAAaAaAaaAaAaAAaaAAaaAaAaAaAaAaAaAaAAaaAaAAaaAAaaAAaaAaAAaAaAaaAAaAaAaaAAaAaaAAaAaAaAaAaaAAaAaaAAaaAAaaAaAAaAaaAAaAaAaAaAaA...

output:

2
2
2
2
299
2
18
6
2
26
2
18
2
33
4
2
2
2
2
15
2
2
2
4
2
2
4
6
2
15
2
2
4
16
2
18
4
8
2
8
2
16
44
2
2
2
4
4
4
2
4
8
2
2
6
2
20
4
4
2
16
6
33
8
105
101
4
4
4
18
4
15
2
2
2
4
4
2
20
12
15
4
20793
2
2
4
2
26
6
2
8
4
2
2
2
30
2
2
2
18
2
2
2
2
6
2
4
4
27
2
2
2
4
8
6
2
4
2
19
2
731
2
2
2
4
2
4
8
2
182
2
2...

result:

ok 500000 lines

Test #41:

score: 0
Accepted
time: 376ms
memory: 64472kb

input:

317811
bAabABaaAbAaBAaBbaAAbaBaABbAabABaaAbABaaAbBAabAaBaAbBAaAbBaaAAbaBAaBbAabAaBAaAbaBaABbAabABaAaBbAabABaaAAbaBAabBAaAbaBaAbABaAabBAabABaaAbBAaAbaBAaAbaBaABbaAbAaBaABbaAAbaBaAAbBaAabBaAAbBaaAbABaAaBbAaAbaBAaBbAaAbaBAaAbaBAabBAaAbBaaAbAaBaABbaAbABaaAbBAaAbaBaAAbBaaABbAaAbaBaAbBaAAbBaaAbABaAaBbaAbA...

output:

64079
46368
99501
-1
178707
10946
28657
-1
178707
178707
214129
-1
178707
64079
298503
-1
264678
253732
10946
189043
64079
37019
178707
-1
46368
178707
46368
174526
46368
22858
1597
24476
-1
-1
6765
46368
2584
183210
232814
303726
10946
46368
283232
-1
217323
46368
196418
296152
28657
9959
178707
46...

result:

ok 500000 lines

Extra Test:

score: 0
Extra Test Passed