Problem Statement
Each node is initially labeled with a lowercase letter. You are give a
Let's define the level of a node as the number of edges in the only path from it to the root. Let L be the maximum level of all nodes.
A tree is "notorious" if both the following conditions hold:
- For each 0 ≤ i ≤ L, there must be at least one node labeled with an uppercase letter that has level i.
- For each pair of nodes connected by an edge, if they are labeled with the same letter (case insensitive), then the letters must be both lowercase or both uppercase.
Ganesh wants to transform the tree into a notorious one. To achieve that, Ganesh will choose zero or more nodes. Then, for each chosen node, Ganesh will change the case of the label to uppercase.
Return the number of possible resulting notorious trees, modulo 1,000,000,007. Two trees are different if there is at least one node that is labeled with a lowercase letter in one tree but is labeled with an uppercase letter in the other tree.
Definition
- Class:
- DengklekGaneshAndTree
- Method:
- getCount
- Parameters:
- String, int[]
- Returns:
- int
- Method signature:
- int getCount(String labels, int[] parents)
- (be sure your method is public)
Constraints
- labels will contain between 1 and 1,000 characters, inclusive.
- Each character of labels will be a lowercase English letter ('a' to 'z').
- parents will contain exactly N − 1 elements, where N is the number of character of labels.
- For each i, parents[i] will be between 0 and i, inclusive.
Examples
"seems"
{0, 1, 0, 3}
Returns: 5
Here are the five possible notorious trees. Nodes with uppercase letters are shown in bold for clarity.
"like"
{0, 0, 0}
Returns: 7
For level 0, the letter 'l' must be uppercase. For level 1, each of the letters 'i', 'k', 'e' can be either lowercase or uppercase, but they cannot be all lowercase. Therefore, the number of possible notorious trees is 1 × 2 × 2 × 2 − 1 = 7.
"a"
{}
Returns: 1
"coincidence"
{0, 1, 2, 0, 2, 1, 4, 7, 7, 6}
Returns: 218
"topcoderopenroundtwobgoodluckhavefun"
{0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
Returns: 147418098
Don't forget to return the answer modulo 1,000,000,007.
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 1, 0, 2, 3, 0, 0, 3, 6, 5, 7, 3, 9, 9, 12, 10, 4, 10, 14, 5, 3, 4, 15, 14, 13, 8, 19, 4, 2, 10, 1, 0, 30, 20, 1, 33, 25, 24, 13, 34, 37, 31, 37, 13, 35, 30, 39, 38, 26, 31, 19, 31, 40, 29, 28, 35, 56, 49, 46, 50, 29, 51, 44, 49, 50, 62, 48, 43, 54, 69, 54, 70, 50, 42, 55, 61, 62, 72, 54, 68, 55, 59, 65, 70, 53, 85, 71, 62, 55, 87, 58, 64, 77, 65, 93, 95, 76, 83, 86}
Returns: 1
"bbaaaababbabbabbabbbbbbababbaaaabaabbabbabbbababbabbaabbaabbbbbbaabbabbabaabaaaaaaabbbbbababbabaabaa"
{0, 1, 1, 3, 0, 3, 0, 7, 7, 2, 9, 2, 9, 1, 13, 9, 12, 12, 2, 7, 13, 4, 17, 10, 0, 20, 25, 11, 13, 27, 5, 17, 3, 18, 4, 21, 8, 10, 38, 36, 27, 30, 32, 29, 21, 40, 45, 26, 36, 24, 21, 30, 19, 42, 48, 33, 42, 42, 29, 54, 48, 59, 54, 38, 50, 48, 39, 64, 63, 54, 40, 45, 57, 61, 74, 54, 70, 64, 52, 52, 71, 80, 58, 63, 55, 64, 67, 87, 78, 56, 74, 71, 66, 83, 89, 86, 66, 76, 93}
Returns: 881034126
"caababbabacbbaaacbbcabbcccbbcbacacbcccbbcbbaaabccccccbaaccbcaaccabcbbbccbbcbbaabaaaaccbccbccbbbabcbb"
{0, 1, 0, 1, 2, 5, 5, 1, 7, 6, 6, 11, 7, 9, 12, 2, 6, 5, 2, 6, 19, 5, 17, 5, 1, 22, 18, 0, 18, 22, 0, 9, 25, 30, 11, 10, 30, 34, 37, 15, 39, 21, 12, 10, 14, 43, 42, 14, 18, 20, 41, 48, 41, 38, 34, 48, 23, 35, 30, 46, 50, 59, 46, 47, 35, 36, 41, 47, 58, 37, 70, 58, 47, 71, 70, 63, 54, 57, 78, 69, 57, 56, 65, 54, 74, 72, 74, 73, 83, 57, 70, 65, 64, 81, 81, 78, 80, 85, 94}
Returns: 193919294
"limyncuhrqmjtbdrqrjqlhrmqutmizflpnmqbnclgtwkqqnfepzkbwcbanijowtfjowrmzmkgycpemoayzlhaoemlbvmpboklncw"
{0, 1, 1, 1, 4, 0, 1, 6, 7, 7, 10, 5, 3, 2, 3, 8, 14, 12, 7, 13, 1, 13, 0, 7, 22, 2, 12, 22, 4, 29, 7, 30, 0, 9, 34, 18, 18, 25, 14, 9, 19, 18, 40, 35, 11, 13, 43, 40, 34, 43, 45, 26, 47, 47, 38, 28, 41, 45, 35, 43, 58, 31, 32, 52, 33, 40, 63, 58, 41, 47, 38, 47, 40, 63, 42, 59, 46, 77, 66, 66, 77, 68, 79, 76, 55, 62, 58, 68, 64, 65, 76, 89, 84, 84, 74, 67, 68, 83, 69}
Returns: 805182759
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"bbbbaababaaaababababbbaaabaabbabbababaaaababbbbbbabbababababbabbbbabbbbbbbbaabaabbbbbbbaaababbbababa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"bcacaccaaaacbbbacccabcbbacbaacbcbbcbbcccabacbbccabbbbaaababcaabcbcbaaccbbaaaacbacacaaaabcabbaaaccaba"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"fedwhvntpfylspurylwiswcgytbguzowjgamvmfijcaemortksiaheejkxujvzflkweodkrklztgugsegebunhoxjxsfjyldblrf"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"szglttqlrzxzbmyplcmeoiqiesotnldxxrnkgwqxpuixnfwhpiaiqapfqukiiwpdyrkqgrbdtxhoisgchtzisiudzbcsthadvqge"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49}
Returns: 1
"abaaaabababbabaababaabaaaaabaabaabbbaabaabaabaaabaaabbbbaabaabbbbbbbbaaaaaabaabaaababaabbaabbbaaaaba"
{0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49}
Returns: 371809776
"acaacccaccbccaaabbccaaccbbcbaacccbabbaaacacbaccbacabbccccacccacaababaaabcbbaacaabbcaccaaacbabcbbaccb"
{0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49}
Returns: 18031757
"xorkrljcczqcjayauaxwkxavxknudpjicsujclxmwmxqwizdirjhwqmwggnovuuepqlyimwdjpsczsmvdjzpdpajeuqiiclhxprz"
{0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49}
Returns: 223773704
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"bababbbbbbbabababbbbaabbbaaabbaaaabbbbaaabaaaaaabababaababaaabbbbaaaabbabaaababbbaabaaababbaaabbbbbb"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 584731762
"aaabbaaaaabbbbabbbbaaababababbaaaaabbababbaaabaaabbaababbbaabbbbaaaaabbbabaabaaabbaabbaabbaabbabaaaa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 545402643
"cabcbabcccaabbbabaacbbacacacbacaaaccaccaabbccbccabccabcaccbcbaacaaaabacabcbbacccccccbbbabcccccbbcaaa"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 380788957
"bacbbccbacabcbbbcaaaacbcbacbcccbbcaccbbacaccbccccbabcacaacbcacbaaacbbccabaababbccaacabbbacabccccbcca"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 386664924
"fmtituadllbmfjswfdgtursungrxzucrvbbuejpddvyixlbxhirkurcbcoygjkhhajiiftmrcjntokqmnpvvhccynapqakihqtei"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 219160879
"mqfmgtrpheskqozagomomgyhqcudklgyakzjyqxdbdwlzxgsdenisticljjxfjivwytbwpmrqgvnnxvzlkhnpzkpstvtkatusgfi"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 122438713
"afirxutkbgymxpycchqooyiokuvtwvxasfisekstpsujuceoknwggbdetlqlrkyzthdekgimycpvuurkzhwiuvieudbpqadeazrz"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 383468741
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 1
"abababababababababababababababababababababababababababababababababababababababababababababababababab"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98}
Returns: 824467624
"abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
Returns: 344211604
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{0, 0, 0, 2, 3, 1, 1, 1, 7, 8, 5, 2, 0, 1, 8, 9, 2, 17, 5, 7, 1, 11, 18, 3, 0, 14, 1, 24, 4, 29, 28, 28, 11, 22, 13, 8, 34, 24, 16, 26, 12, 17, 27, 34, 0, 40, 25, 23, 37, 22, 12, 48, 21, 39, 3, 8, 39, 34, 33, 29, 45, 16, 14, 31, 43, 54, 22, 47, 36, 31, 8, 1, 3, 57, 31, 3, 69, 74, 38, 48, 50, 55, 49, 79, 14, 56, 12, 3, 56, 84, 51, 72, 91, 32, 71, 71, 10, 83, 98, 62, 65, 15, 46, 3, 5, 97, 88, 16, 74, 69, 93, 89, 110, 104, 4, 27, 31, 66, 39, 101, 120, 57, 1, 73, 26, 105, 99, 115, 53, 82, 42, 31, 106, 94, 65, 44, 116, 59, 80, 130, 11, 112, 63, 28, 106, 116, 32, 40, 123, 8, 48, 94, 28, 83, 16, 55, 107, 100, 99, 4, 146, 81, 59, 157, 128, 102, 71, 101, 31, 145, 121, 56, 61, 134, 31, 146, 82, 66, 79, 143, 7, 25, 96, 27, 108, 135, 28, 39, 75, 83, 138, 16, 170, 138, 170, 66, 50, 81, 133, 103, 32, 90, 73, 8, 115, 88, 54, 51, 96, 156, 9, 49, 79, 116, 126, 175, 198, 25, 30, 189, 124, 17, 186, 84, 61, 209, 47, 226, 163, 225, 168, 162, 86, 153, 24, 51, 20, 58, 152, 34, 104, 175, 107, 219, 198, 114, 182, 19, 127, 175, 15, 103, 44, 83, 241, 175, 150, 128, 36, 127, 145, 135, 188, 106, 189, 52, 156, 115, 112, 4, 129, 110, 15, 26, 105, 65, 123, 248, 119, 273, 85, 231, 3, 95, 269, 245, 251, 102, 17, 171, 201, 106, 240, 256, 6, 240, 248, 131, 237, 163, 93, 64, 222, 247, 65, 136, 235, 38, 51, 120, 131, 60, 190, 235, 125, 15, 184, 221, 41, 278, 145, 77, 187, 272, 24, 215, 236, 161, 111, 75, 100, 71, 80, 214, 132, 331, 148, 304, 114, 100, 330, 184, 182, 292, 320, 342, 272, 46, 160, 141, 197, 114, 262, 120, 101, 201, 294, 117, 256, 347, 172, 290, 236, 64, 204, 256, 245, 97, 104, 69, 258, 55, 272, 115, 146, 235, 186, 295, 310, 335, 328, 207, 159, 226, 195, 362, 152, 301, 383, 378, 258, 113, 390, 233, 134, 79, 369, 349, 277, 358, 327, 339, 217, 372, 254, 95, 147, 161, 300, 352, 300, 373, 265, 202, 237, 364, 413, 150, 280, 250, 400, 195, 92, 270, 224, 298, 290, 273, 200, 314, 265, 250, 426, 125, 212, 340, 287, 336, 120, 118, 257, 397, 168, 385, 335, 422, 364, 288, 381, 359, 161, 371, 178, 390, 278, 277, 242, 411, 427, 427, 158, 378, 252, 203, 229, 186, 403, 201, 254, 152, 402, 368, 442, 288, 400, 447, 461, 153, 218, 460, 285, 199, 427, 405, 465, 214, 329, 446, 358, 273, 172, 171, 166, 238, 418, 219, 405, 463, 245, 438, 199, 331, 259, 234, 406, 461, 387, 286, 385, 407, 267, 381, 503, 199, 208, 467, 508, 341, 357, 244, 224, 189, 509, 486, 275, 381, 208, 341, 363, 389, 350, 523, 388, 457, 316, 356, 254, 205, 390, 479, 358, 488, 419, 363, 476, 451, 234, 465, 428, 454, 489, 440, 298, 306, 424, 232, 294, 390, 253, 424, 516, 449, 356, 388, 496, 530, 502, 340, 418, 373, 498, 358, 463, 339, 413, 291, 474, 528, 409, 428, 513, 514, 551, 510, 553, 478, 509, 333, 258, 447, 353, 334, 293, 589, 510, 429, 318, 292, 490, 468, 370, 580, 361, 565, 397, 482, 321, 427, 532, 502, 462, 360, 514, 299, 329, 308, 451, 444, 551, 399, 442, 490, 582, 386, 352, 335, 457, 512, 332, 363, 630, 536, 374, 474, 506, 386, 547, 599, 347, 538, 531, 404, 517, 572, 545, 527, 327, 546, 534, 491, 494, 553, 527, 570, 403, 565, 499, 395, 375, 487, 492, 521, 350, 547, 351, 614, 503, 542, 552, 553, 614, 635, 499, 488, 649, 445, 531, 486, 500, 366, 472, 413, 394, 445, 650, 590, 405, 389, 665, 449, 612, 582, 408, 364, 386, 689, 506, 509, 588, 582, 570, 616, 443, 534, 485, 616, 621, 580, 645, 467, 502, 446, 496, 450, 391, 581, 495, 697, 682, 386, 540, 681, 686, 673, 518, 645, 408, 556, 488, 507, 630, 579, 601, 453, 663, 463, 412, 530, 472, 655, 505, 541, 413, 720, 480, 704, 648, 480, 622, 468, 716, 701, 710, 637, 511, 738, 721, 565, 480, 730, 628, 647, 586, 547, 455, 455, 574, 727, 452, 487, 612, 475, 599, 474, 448, 562, 769, 694, 709, 657, 534, 544, 691, 744, 515, 652, 729, 716, 516, 505, 703, 707, 532, 493, 473, 495, 505, 741, 620, 642, 658, 784, 524, 692, 704, 506, 691, 672, 805, 785, 640, 542, 741, 808, 775, 505, 514, 498, 804, 652, 803, 763, 589, 782, 750, 561, 605, 755, 730, 640, 733, 719, 637, 758, 788, 774, 515, 617, 735, 819, 766, 562, 594, 757, 789, 665, 671, 752, 579, 841, 546, 569, 746, 744, 674, 564, 660, 799, 668, 579, 815, 785, 725, 753, 533, 748, 797, 664, 710, 544, 840, 609, 867, 583, 731, 840, 747, 838, 850, 700, 873, 669, 658, 748, 638, 699, 763, 852, 586, 627, 631, 828, 786, 774, 647, 838, 808, 743, 639, 716, 699, 694, 641, 704, 745, 686, 775, 891, 692, 898, 605, 590, 863, 763, 880, 901, 594, 857, 866, 870, 734, 824, 666, 858, 609, 790, 783, 813, 742, 772, 650, 848, 675, 782, 760, 808, 645, 857, 865, 676, 697, 665, 652, 875, 658, 703, 923, 781, 927, 933, 888, 890, 783, 731, 768, 878, 874, 658, 905, 811, 894, 644, 930, 829, 734, 647, 681, 717, 859, 783, 717, 957, 745, 906, 708, 657, 812, 669, 832, 804, 925, 799, 933, 870, 823, 708, 831, 676, 946, 877, 975, 662, 972, 770, 905, 965, 839, 978, 734}
Returns: 1
"bbaaaaabaaabbbabbbaababbaababbaabbabbbbaaabaaabaabbbabbbabbbabaabaabbbaaaabbaaaaababaababaaaaaaabbabbabababaabaaabaababbbaaaaabbbabaabbababaaaaaabbbaaababaabbbbaaaabbaabaaababbbbababbbbbbabbaabbbaabbbaaaaabaababbbbabbbaababbabbaaabbbaaabaabaaabaababaaabbbbbaabbbabbabbbbabaaaaaabbabababbabbaabbabaaabbbaababaaabbabaabbbbababbabbabababbbaaaabbbbbaabbaabababbaaabaaababbaabaabbabbabbabbbbabbaabbaabbbabaaabbbabbbbaabababbaaaabbbababbaababaabbbaaabbaaababbbabbabbaaababaabbbbaabaababbabbabaababbabbabbbaaaababbbbbbabbabbbababbbbbbbbaaaababaaabbbbaabaabbabaabbbabaabbabbabbaaababaaabbbbbbbaabbabbbbaabbbbabbbbbaabbababbaaabaaaaabaaaababbbaaabbbbaaabbababbbbbbbaaabaabbabbaaabbbbabbbbbbaaababbbbaaabaaaaaaaaaababaaabbaababbabbbabbaabbababaabababaaabaababaaabaabaabbbabbabaabbbbbabaaabababaaaaaababbbababbbaabbbbbababbaabaabbbbbbbaaabaaabbabaabababbaabbabbaababaabaaaaabbabbabbbbaabbbbaabbabaaabbabaabbaabbbabaabaabbbaaaaabbaabaaabaaababaaababaaaaaaabbabbaaaabbbabbbabbaaaabaabaaabbabaaababaaaaaababbbbaaab"
{0, 0, 1, 0, 3, 1, 4, 5, 0, 9, 3, 1, 1, 11, 6, 10, 6, 4, 6, 15, 14, 4, 3, 2, 12, 9, 6, 2, 8, 14, 0, 10, 28, 2, 28, 29, 2, 33, 35, 18, 20, 12, 35, 34, 24, 8, 42, 28, 48, 12, 22, 27, 34, 50, 22, 51, 1, 49, 51, 25, 35, 35, 34, 53, 57, 30, 21, 53, 59, 41, 8, 63, 37, 66, 47, 66, 22, 10, 14, 61, 57, 52, 76, 64, 5, 32, 29, 30, 33, 15, 73, 30, 62, 62, 88, 53, 70, 22, 80, 91, 10, 55, 47, 99, 93, 52, 99, 72, 91, 26, 36, 110, 17, 61, 62, 25, 97, 51, 41, 28, 63, 6, 118, 40, 110, 119, 91, 32, 36, 0, 72, 99, 66, 54, 62, 42, 115, 91, 52, 71, 130, 35, 55, 141, 1, 17, 77, 93, 70, 121, 107, 77, 106, 94, 14, 58, 91, 78, 78, 82, 160, 93, 76, 157, 13, 160, 28, 122, 145, 43, 94, 136, 53, 8, 159, 82, 49, 174, 40, 166, 114, 109, 24, 162, 83, 76, 173, 39, 84, 182, 12, 67, 41, 63, 173, 163, 109, 14, 50, 53, 0, 161, 137, 143, 81, 131, 134, 87, 87, 187, 66, 39, 13, 11, 154, 171, 35, 86, 56, 39, 35, 159, 196, 41, 160, 77, 134, 94, 196, 112, 143, 94, 73, 138, 8, 113, 103, 96, 186, 100, 52, 99, 155, 219, 81, 32, 216, 222, 193, 64, 41, 174, 221, 148, 55, 224, 174, 34, 212, 163, 51, 85, 66, 141, 215, 131, 148, 215, 204, 11, 93, 247, 136, 148, 59, 253, 220, 258, 81, 212, 41, 122, 39, 231, 83, 12, 12, 153, 85, 248, 127, 153, 214, 61, 145, 289, 115, 179, 22, 206, 41, 169, 99, 273, 224, 277, 243, 120, 6, 241, 10, 125, 240, 127, 113, 297, 57, 198, 123, 148, 85, 203, 67, 44, 22, 304, 205, 207, 276, 133, 170, 239, 229, 66, 201, 42, 145, 68, 239, 93, 39, 315, 101, 166, 22, 167, 38, 153, 201, 49, 253, 227, 178, 262, 297, 145, 97, 260, 179, 131, 157, 116, 32, 329, 56, 222, 24, 325, 304, 366, 138, 144, 21, 341, 214, 326, 53, 24, 137, 67, 284, 256, 71, 15, 225, 174, 213, 285, 44, 91, 370, 84, 370, 235, 388, 88, 88, 164, 28, 118, 243, 318, 285, 174, 275, 13, 119, 265, 97, 282, 56, 134, 286, 68, 111, 170, 377, 282, 90, 77, 259, 8, 374, 229, 412, 119, 348, 213, 168, 202, 351, 53, 34, 68, 328, 301, 317, 282, 227, 54, 373, 311, 272, 325, 383, 256, 83, 329, 388, 22, 17, 196, 166, 351, 249, 299, 241, 387, 54, 223, 211, 337, 415, 297, 53, 204, 36, 328, 468, 414, 69, 450, 101, 461, 23, 153, 56, 411, 230, 162, 403, 287, 412, 159, 249, 283, 199, 115, 82, 421, 309, 408, 415, 413, 257, 207, 245, 134, 407, 460, 248, 170, 171, 333, 176, 271, 301, 49, 454, 270, 127, 326, 239, 141, 478, 35, 280, 21, 230, 457, 479, 296, 88, 243, 154, 99, 375, 401, 524, 191, 85, 279, 366, 334, 269, 422, 267, 414, 171, 222, 202, 238, 163, 80, 53, 94, 379, 530, 80, 178, 116, 492, 155, 422, 245, 138, 430, 551, 531, 310, 357, 511, 113, 470, 289, 240, 349, 266, 339, 333, 520, 122, 317, 305, 128, 411, 145, 564, 363, 177, 351, 364, 298, 366, 204, 520, 141, 480, 394, 461, 272, 419, 353, 337, 278, 283, 365, 260, 382, 201, 473, 549, 184, 452, 299, 414, 210, 386, 518, 330, 176, 406, 332, 280, 344, 290, 323, 191, 496, 201, 351, 324, 359, 293, 137, 414, 491, 487, 345, 275, 221, 196, 478, 632, 187, 257, 198, 349, 176, 592, 509, 398, 605, 548, 292, 461, 458, 503, 319, 538, 608, 172, 629, 299, 312, 618, 620, 265, 458, 617, 424, 454, 477, 209, 261, 454, 370, 246, 657, 467, 661, 665, 662, 512, 451, 301, 219, 588, 563, 362, 672, 251, 525, 352, 576, 342, 419, 477, 434, 263, 473, 519, 220, 489, 262, 672, 689, 284, 245, 637, 472, 419, 544, 469, 552, 651, 286, 480, 310, 606, 474, 299, 302, 348, 666, 300, 250, 582, 458, 635, 263, 554, 222, 304, 342, 440, 659, 272, 571, 561, 623, 393, 403, 240, 701, 385, 488, 321, 372, 732, 342, 330, 409, 448, 470, 421, 321, 688, 735, 748, 636, 336, 293, 375, 617, 652, 399, 474, 692, 408, 530, 317, 325, 594, 306, 357, 409, 477, 509, 475, 375, 561, 443, 517, 655, 299, 366, 599, 651, 337, 406, 703, 522, 537, 434, 447, 322, 522, 327, 492, 679, 579, 738, 721, 679, 543, 496, 433, 789, 546, 349, 537, 558, 383, 718, 767, 759, 346, 460, 774, 322, 424, 331, 643, 552, 755, 794, 587, 744, 405, 404, 754, 519, 561, 327, 512, 428, 360, 780, 579, 720, 491, 553, 474, 799, 692, 658, 750, 467, 389, 836, 751, 805, 564, 515, 363, 509, 790, 776, 604, 731, 766, 673, 796, 721, 429, 763, 447, 587, 725, 734, 439, 671, 384, 774, 658, 473, 737, 460, 861, 854, 623, 462, 676, 867, 748, 749, 696, 595, 825, 810, 489, 634, 526, 682, 840, 833, 584, 579, 696, 604, 513, 403, 815, 512, 612, 706, 719, 537, 805, 877, 895, 665, 546, 542, 605, 816, 673, 443, 669, 424, 755, 736, 420, 482, 485, 587, 503, 628, 688, 896, 606, 654, 557, 548, 452, 680, 667, 691, 770, 816, 648, 517, 650, 890, 919, 771, 515, 922, 833, 753, 938, 941, 448, 507, 904, 658, 735, 644, 829, 809, 672, 777, 483, 555, 634, 838, 923, 680, 608, 742, 504, 673, 583, 580, 889, 964, 854, 636, 845, 713, 942, 632, 874, 766, 729, 539, 946, 741, 692, 932, 778, 586, 795, 552, 768, 836, 540, 529, 578, 860, 895, 768, 589, 821, 892, 605, 545, 786}
Returns: 270429903
"bbabbaccbccccbcbbcccabccabcbaabacbccccbacbbcacbcbbbabacbbcbbccbacacaaaabcaccaaabbacacaacbcaacbbacbcccabaccabcbabbbcccaaccabbabaaabcacaabbbcccabcabaaabbaabaabbaccaacbbabaaaacacabcccbabbbbcbbbbcabbcbcccaacabccbaccaacbaaaaababcabccbaaaaaabaccabbccccbaacabaccbbcbbbcacbacccbabbccabaabacacbaccacccbbccbccbcaabccabccacbcbbabcacbcabcbcaabacacbcabbbbcccaabcbcbbcacccbcbcbccbccaababcbbccabacacbccaababcbababbcabaccaaccabacabbbcaccabbbaaaaccccbccbbbaacbbbabcabaccbabcacaaaacbbbbcabcbcbbacbabbbbaaabbcbcabcbcccacaccaabbabbcbcaaccbabbbbcacbbabcaacbaacbbacaaaccabbcbbbaabbccaccabcbabcabcaabcbbcbccccababcbbcccaccabcaacaababaacbccbcacbbbbcccbbacccababcbbbcbbabbbacbbbccccacbcbcccaacacbcacbcbacbabcbcbcabaabaccacabbacabaaccbbcbccaaacccbcccabaacbbacccabcbbaccaccacccacccabbbabbaccaabbaaabbbcbccccabcbbcbbcbbacaabbaaacbaabaacbbccbbbaaccbaaaacababcababbbaacacbabccbcabacbcaacabcbacccbcaaaababcbcbcbaacaccabcccccbccaaaaababccacaabaacbcabcbbbbcababbcccbbbccbbbbabbcbaacabaaabcbcccaaabaaabcaccbbbbcbbaacaccabcccaabccacaca"
{0, 0, 1, 3, 3, 1, 0, 3, 3, 8, 10, 11, 10, 5, 4, 2, 0, 5, 13, 17, 1, 3, 4, 18, 3, 10, 12, 9, 1, 20, 3, 29, 30, 16, 22, 15, 1, 0, 22, 12, 3, 11, 8, 27, 18, 33, 7, 14, 10, 48, 48, 28, 22, 35, 48, 4, 41, 43, 8, 40, 30, 59, 51, 46, 18, 48, 21, 23, 17, 63, 36, 20, 63, 35, 68, 72, 44, 13, 29, 15, 80, 17, 65, 31, 46, 5, 44, 78, 49, 72, 39, 24, 82, 82, 15, 69, 19, 34, 89, 9, 26, 60, 28, 40, 44, 30, 30, 20, 85, 80, 98, 40, 31, 83, 12, 32, 2, 18, 11, 68, 32, 8, 119, 13, 5, 72, 42, 113, 5, 41, 14, 73, 50, 81, 111, 19, 109, 78, 58, 6, 133, 120, 11, 32, 10, 127, 10, 139, 65, 10, 67, 64, 10, 109, 115, 97, 55, 0, 141, 91, 19, 27, 58, 131, 115, 26, 161, 16, 30, 88, 138, 26, 79, 153, 168, 22, 24, 18, 40, 2, 108, 144, 18, 169, 18, 5, 166, 123, 24, 48, 23, 129, 180, 3, 193, 169, 164, 26, 173, 195, 104, 33, 22, 80, 123, 74, 164, 199, 149, 64, 150, 145, 173, 5, 120, 109, 98, 98, 214, 144, 67, 151, 8, 52, 93, 8, 130, 226, 63, 121, 56, 133, 120, 126, 184, 120, 26, 107, 30, 63, 155, 102, 214, 12, 31, 225, 56, 37, 10, 85, 186, 12, 73, 207, 16, 211, 20, 40, 5, 74, 146, 169, 70, 256, 93, 14, 64, 174, 106, 5, 174, 86, 100, 174, 79, 272, 90, 46, 4, 226, 102, 152, 133, 85, 77, 182, 75, 132, 231, 31, 64, 30, 182, 117, 24, 279, 110, 236, 164, 295, 52, 19, 40, 238, 135, 182, 226, 85, 279, 0, 236, 148, 242, 308, 9, 15, 260, 207, 113, 59, 161, 213, 71, 7, 204, 63, 96, 210, 298, 227, 188, 29, 156, 332, 328, 180, 307, 17, 220, 175, 79, 104, 72, 288, 108, 4, 206, 318, 232, 148, 269, 290, 338, 32, 61, 258, 42, 55, 340, 333, 172, 36, 128, 37, 24, 20, 202, 32, 17, 322, 311, 244, 276, 255, 319, 179, 269, 1, 199, 291, 353, 181, 345, 238, 173, 90, 353, 22, 253, 128, 230, 381, 105, 282, 343, 162, 21, 72, 142, 137, 56, 314, 246, 217, 355, 29, 223, 270, 255, 128, 340, 130, 280, 88, 406, 145, 130, 28, 24, 286, 235, 99, 370, 403, 177, 141, 213, 397, 397, 384, 266, 190, 307, 426, 251, 290, 235, 355, 8, 240, 310, 254, 365, 256, 178, 219, 438, 160, 316, 140, 383, 82, 208, 68, 374, 391, 147, 241, 398, 215, 41, 252, 408, 105, 15, 122, 419, 170, 443, 124, 464, 282, 152, 369, 48, 143, 121, 195, 439, 394, 335, 171, 128, 417, 183, 136, 443, 479, 402, 145, 6, 402, 376, 366, 213, 21, 347, 1, 430, 56, 173, 459, 475, 419, 113, 170, 37, 122, 153, 304, 25, 311, 30, 263, 268, 412, 389, 257, 134, 325, 21, 307, 111, 73, 32, 5, 521, 434, 54, 16, 435, 104, 135, 190, 519, 430, 368, 323, 446, 396, 399, 123, 484, 329, 125, 336, 528, 473, 244, 261, 208, 36, 387, 116, 178, 408, 248, 83, 31, 375, 252, 64, 539, 270, 412, 314, 241, 528, 118, 39, 195, 80, 308, 480, 562, 532, 3, 359, 475, 498, 99, 121, 151, 320, 352, 322, 397, 124, 285, 474, 510, 320, 86, 132, 122, 73, 419, 114, 315, 193, 387, 513, 261, 570, 513, 435, 593, 26, 569, 45, 435, 225, 136, 520, 11, 47, 293, 454, 14, 519, 522, 365, 476, 471, 245, 181, 269, 306, 599, 457, 318, 335, 331, 521, 196, 560, 19, 361, 440, 592, 377, 207, 106, 473, 492, 455, 618, 0, 602, 434, 455, 518, 118, 284, 403, 511, 319, 627, 542, 48, 193, 554, 543, 285, 490, 436, 587, 617, 550, 122, 90, 12, 629, 180, 128, 463, 250, 243, 580, 640, 288, 183, 488, 161, 12, 446, 561, 406, 237, 163, 152, 593, 161, 587, 108, 145, 671, 471, 347, 341, 511, 538, 439, 32, 500, 83, 495, 466, 476, 438, 80, 406, 575, 598, 525, 325, 197, 449, 589, 546, 343, 238, 171, 58, 111, 435, 602, 180, 658, 457, 40, 97, 116, 201, 589, 632, 556, 353, 47, 649, 516, 282, 372, 246, 328, 534, 280, 4, 126, 734, 384, 297, 299, 745, 400, 713, 344, 89, 482, 26, 585, 619, 335, 525, 210, 737, 158, 291, 516, 265, 159, 733, 723, 576, 123, 31, 178, 510, 77, 539, 597, 31, 134, 173, 574, 750, 374, 529, 43, 172, 427, 205, 725, 779, 66, 208, 644, 407, 659, 181, 423, 9, 746, 682, 132, 627, 433, 701, 125, 111, 326, 663, 178, 613, 77, 669, 733, 199, 371, 622, 265, 547, 406, 654, 691, 181, 172, 704, 409, 340, 718, 432, 510, 110, 245, 549, 268, 352, 559, 242, 523, 567, 745, 577, 462, 201, 382, 386, 31, 151, 316, 475, 840, 350, 724, 320, 214, 82, 208, 24, 375, 838, 430, 755, 548, 283, 458, 337, 494, 4, 752, 112, 369, 13, 509, 498, 655, 329, 398, 750, 843, 326, 218, 269, 836, 247, 816, 556, 742, 283, 873, 451, 327, 602, 877, 229, 732, 172, 475, 158, 637, 233, 85, 129, 30, 293, 87, 574, 624, 85, 826, 685, 638, 10, 80, 875, 804, 715, 342, 698, 814, 199, 347, 792, 882, 281, 853, 204, 525, 330, 79, 317, 801, 821, 717, 422, 484, 343, 525, 819, 133, 599, 389, 680, 770, 128, 766, 332, 784, 920, 470, 822, 62, 13, 85, 34, 782, 546, 657, 764, 0, 407, 341, 787, 250, 12, 421, 944, 242, 274, 881, 824, 724, 774, 874, 944, 331, 396, 657, 33, 190, 168, 94, 858, 453, 579, 59, 616, 709, 794, 214, 10, 624, 75, 926, 270, 724, 136, 738}
Returns: 83769185
"bbcdbbadccdbaaabdcadabdbbabaddacdbcbaddcdaabbccaabcccaacbacccddddbbddcaacccaaacaddbddddcbbdcddcdbbcdacbdcddbacdbcccbadbdcabddccabddcaababcaacabdccbbaadabbcbcdaacacbbadbcbabdbaccccdbbbddacadcccccdccdadbaccdcddabdbbcdabccacccdabcddbdcaadbddcdacaacdcbdcbdccbaabdabcbcddaaaaadbacbbcdbddaaaacdcbacbcccadbadababbbbdcccddcdcabcaddcccbbdbcdbcccbdddaaaccabbbacadccccbaacccdacabdcbabbaadbdcdcdbcccdddadcbbabacabbacaddbbcaddabddccacacdcbbdaaaaadabddbbbaadaddaabacdcbdbabbacdbdabcdcaaaaddaabbaddabaccabdbabbbabcabcdbdcbabddaccbcbbadcbabdcbddbccccadcccabbadbdbcaddabadbdccacabadcdcdcadcabcbbbabdbdaabdbcbcdddabcccccdccbabdcdacbcbcdabbabdcadbcacbdbddccdbcbcbdabddcadccdbbabbdacdccdcdbbddcccababdbccacccdabccacbdbaabbdcbabdaacdbbbdbbacdcaabbaabababdcddabbcbadabccdddbccbbbcdbaaccabcbbdadbcbbdcdcdacadcbcddabbcdaaabbbdaccddcdaabccbcbacacbddababbcbddcdcccddaccdcbbbaccdadbdbbadbbaaadaacabdaabddccbbaddabbadabbbadadcdabccdcdddababbbacbbddcccdacbdbbdaddcdbcdddbcbbcbdcbbbdcddcaaddbdacdcccaaaadbbcacaccdbbdbbbbbdbadbdcdb"
{0, 0, 1, 0, 2, 3, 0, 5, 1, 3, 8, 8, 9, 5, 4, 14, 1, 16, 4, 5, 2, 10, 0, 4, 21, 13, 20, 6, 28, 4, 21, 24, 15, 32, 7, 23, 11, 31, 30, 0, 15, 11, 19, 7, 16, 2, 28, 11, 21, 46, 45, 19, 33, 41, 42, 8, 6, 22, 21, 0, 25, 31, 39, 27, 45, 23, 4, 12, 60, 1, 41, 67, 63, 63, 43, 20, 63, 41, 12, 70, 31, 7, 25, 71, 14, 84, 24, 59, 23, 89, 31, 2, 75, 84, 84, 10, 67, 31, 67, 22, 46, 26, 19, 11, 85, 90, 30, 78, 98, 50, 100, 57, 51, 83, 67, 102, 83, 82, 20, 35, 63, 110, 15, 44, 12, 59, 101, 4, 47, 45, 71, 114, 107, 65, 134, 33, 135, 103, 124, 62, 6, 113, 113, 125, 124, 62, 86, 110, 35, 130, 127, 80, 76, 50, 131, 44, 137, 35, 135, 86, 50, 50, 111, 53, 154, 67, 77, 80, 78, 87, 72, 42, 12, 131, 63, 42, 6, 119, 147, 17, 163, 161, 27, 134, 159, 55, 57, 85, 127, 33, 108, 184, 181, 67, 160, 5, 33, 173, 120, 111, 69, 22, 130, 69, 118, 74, 156, 203, 132, 140, 139, 41, 42, 118, 170, 171, 18, 168, 121, 31, 33, 175, 78, 132, 164, 150, 124, 218, 112, 34, 163, 155, 55, 161, 62, 154, 69, 212, 6, 215, 19, 240, 89, 154, 228, 240, 194, 235, 215, 243, 96, 94, 182, 241, 82, 161, 216, 220, 26, 224, 78, 155, 197, 5, 21, 64, 196, 230, 175, 60, 173, 73, 86, 118, 157, 144, 228, 276, 28, 32, 100, 53, 70, 184, 225, 128, 254, 132, 33, 75, 160, 253, 83, 130, 201, 54, 45, 80, 45, 201, 254, 78, 71, 261, 215, 297, 108, 13, 65, 157, 26, 231, 224, 205, 154, 214, 133, 76, 8, 8, 184, 36, 153, 153, 156, 229, 241, 249, 177, 177, 315, 283, 261, 40, 198, 43, 275, 287, 324, 78, 5, 328, 293, 277, 75, 192, 336, 148, 130, 56, 99, 254, 278, 274, 260, 151, 333, 178, 156, 3, 185, 165, 221, 121, 259, 276, 140, 174, 218, 16, 200, 332, 47, 264, 10, 99, 171, 173, 144, 232, 295, 302, 344, 57, 143, 354, 103, 364, 6, 270, 112, 189, 153, 132, 274, 94, 331, 88, 336, 344, 297, 165, 208, 348, 80, 376, 5, 71, 228, 115, 207, 352, 369, 284, 173, 136, 167, 234, 93, 365, 31, 267, 51, 401, 131, 351, 367, 242, 329, 98, 88, 300, 311, 83, 346, 97, 175, 400, 393, 313, 323, 382, 257, 180, 312, 22, 432, 319, 164, 92, 186, 194, 295, 98, 440, 199, 55, 53, 120, 207, 444, 309, 135, 401, 320, 222, 427, 95, 257, 300, 224, 195, 184, 187, 319, 119, 363, 254, 200, 288, 399, 353, 25, 382, 406, 394, 349, 409, 338, 410, 1, 215, 227, 172, 141, 397, 409, 492, 498, 200, 397, 387, 47, 131, 33, 480, 220, 64, 68, 342, 89, 126, 318, 33, 433, 456, 438, 221, 517, 265, 140, 482, 109, 402, 223, 382, 207, 359, 84, 312, 213, 253, 142, 431, 64, 111, 113, 326, 372, 378, 276, 410, 507, 103, 499, 408, 487, 527, 253, 179, 541, 273, 520, 14, 296, 168, 535, 542, 125, 312, 182, 232, 401, 111, 23, 496, 204, 444, 567, 142, 323, 370, 561, 471, 137, 153, 399, 51, 271, 95, 194, 437, 84, 41, 569, 131, 486, 153, 296, 419, 532, 472, 214, 144, 120, 594, 495, 520, 514, 277, 361, 234, 88, 587, 313, 231, 226, 97, 114, 121, 29, 252, 390, 378, 281, 245, 425, 366, 149, 505, 463, 422, 367, 512, 192, 435, 176, 510, 554, 450, 219, 240, 180, 69, 299, 21, 260, 332, 19, 161, 380, 412, 133, 36, 551, 36, 483, 551, 4, 21, 325, 470, 486, 282, 531, 395, 411, 610, 642, 23, 497, 524, 374, 556, 336, 179, 608, 592, 194, 560, 639, 136, 267, 370, 444, 630, 300, 238, 17, 488, 209, 499, 183, 477, 259, 382, 458, 72, 89, 61, 204, 416, 493, 650, 182, 507, 472, 635, 517, 153, 424, 288, 161, 173, 476, 330, 150, 692, 353, 388, 606, 591, 549, 74, 400, 203, 706, 672, 681, 257, 514, 680, 204, 458, 473, 30, 324, 708, 153, 352, 450, 370, 598, 534, 199, 464, 26, 480, 205, 210, 442, 443, 629, 728, 473, 192, 530, 87, 272, 158, 33, 241, 444, 744, 376, 356, 746, 644, 63, 439, 399, 336, 544, 122, 271, 375, 657, 323, 109, 306, 403, 239, 525, 523, 741, 486, 26, 625, 65, 188, 571, 331, 27, 444, 760, 130, 514, 396, 100, 640, 608, 472, 662, 43, 208, 363, 306, 56, 340, 479, 214, 40, 427, 143, 356, 462, 144, 161, 187, 786, 536, 387, 10, 606, 688, 516, 231, 44, 356, 142, 638, 482, 765, 24, 537, 263, 473, 451, 729, 112, 128, 562, 741, 499, 769, 133, 95, 456, 333, 642, 823, 517, 695, 467, 676, 735, 26, 739, 336, 465, 837, 556, 839, 537, 467, 108, 265, 440, 272, 294, 125, 322, 662, 642, 507, 317, 384, 573, 782, 350, 855, 203, 748, 497, 799, 524, 386, 326, 538, 711, 470, 760, 307, 279, 769, 23, 830, 407, 472, 785, 159, 400, 725, 640, 167, 693, 213, 272, 90, 278, 413, 582, 627, 639, 689, 103, 228, 697, 148, 773, 354, 762, 401, 154, 380, 819, 317, 379, 302, 288, 699, 328, 174, 756, 798, 633, 606, 576, 915, 168, 197, 455, 70, 572, 295, 518, 428, 205, 706, 486, 719, 419, 414, 345, 672, 790, 467, 187, 302, 580, 510, 46, 837, 191, 78, 134, 750, 301, 396, 268, 503, 883, 763, 897, 392, 677, 647, 829, 650, 433, 522, 296, 560, 467, 793, 491, 422, 147, 200, 519, 178, 963, 271, 919, 189, 450, 849, 785, 869, 215, 776, 968, 771, 740, 129, 844, 31, 691, 25}
Returns: 731533887
"ptwpudkknmadfjlwdqpvhqnzvocyaqktezgykxsudigvvypdwjmdhrebmwvdndyzmpenrywtqkcgqtrazywfiqwqofevrwieyuvaojqmyhyitkfffzjbbqixkfcxcokefiksmewxjzchvnucnznuixllnwzmxyddzsatldxaxdsxuekvxnzntitpxnxpmvjixggzqnzmaqypgronpnriiskmgzzxlrzscwyefuopvwwbntbshdtocnpuowtrdiaaozbjoehkrxbuvvfvrdjqktgfphxyjcopeunwifroleumjldfsbjkfwpvqqfshtpklybqcvpwseorpremvjhjljjtldaeyionztnpchklstshzldrwjvroseysarhrufbrebhifahmtfeohrpckwxcunveehbageqwmkzsoxkglwjduxvvwbuzmnugbhtpakdslasloyzbuvehyroiuuudfjdsqbgwknsflktyhkhyeikxmmzoibuiwyqmjlfinnahahunpddzqhgkqrfvrkfjexbdioaeiyddtwvauikqlpdnkufcdqblyjmokkmsxtosuqbhpbhwzxmbnhdmaygcujzihswkyvlaqswxbmuvfzewdlrsnxmcjmdyxxxfjfqxfnjsxpxqiwppxzwqwqyprlcdtudmbhpwrlnymvpzpgwvlstgdfxeqlcmahnxxjhepziibczeoppbardpeldsrjapainabmxvjvwujyixuvguqpupqlckomemgnjkhpapnrwlgiegqmicyzimodjuxbqxvmdweeglwkwtbqkhboeradfjmctaepwyhqjehsfybnrlwvailocsljmogddrhsofrkakozgxsentihfgcbkysqefmqpysyyeauyrfoyttulzpzdpwlbiyirlbgujicyoinumlntggjfbkvmuvaywwsrjzacaazexdmtedkxvpvepdzulhmnqldrebuihdkqwvbsbzaotymjpdqp"
{0, 1, 1, 1, 1, 5, 5, 4, 5, 7, 3, 0, 4, 10, 9, 14, 10, 5, 15, 11, 19, 18, 20, 16, 15, 8, 14, 16, 6, 13, 12, 17, 13, 25, 4, 27, 4, 7, 22, 36, 35, 38, 25, 2, 26, 22, 23, 13, 2, 36, 42, 32, 9, 44, 42, 2, 6, 10, 36, 24, 53, 51, 21, 11, 0, 57, 25, 5, 38, 18, 9, 45, 11, 7, 6, 60, 57, 41, 18, 50, 2, 49, 27, 37, 82, 76, 64, 83, 34, 31, 8, 81, 73, 92, 9, 2, 7, 86, 4, 40, 54, 39, 76, 96, 66, 28, 64, 11, 15, 56, 106, 69, 41, 55, 64, 115, 65, 14, 78, 2, 17, 110, 102, 13, 16, 90, 6, 85, 43, 61, 18, 40, 47, 42, 30, 75, 67, 71, 72, 4, 85, 92, 128, 81, 9, 7, 91, 49, 108, 56, 144, 42, 58, 123, 101, 143, 110, 148, 150, 51, 0, 34, 16, 5, 124, 161, 144, 127, 111, 38, 13, 8, 93, 121, 145, 112, 13, 141, 164, 96, 99, 27, 153, 170, 168, 13, 115, 86, 140, 42, 153, 171, 66, 141, 21, 71, 131, 102, 190, 110, 25, 147, 1, 118, 74, 77, 185, 199, 131, 51, 135, 141, 11, 150, 189, 172, 148, 120, 57, 130, 218, 46, 182, 219, 113, 106, 17, 111, 65, 64, 164, 202, 148, 11, 140, 57, 194, 185, 177, 171, 45, 22, 61, 118, 63, 27, 187, 0, 3, 62, 94, 136, 200, 97, 251, 79, 55, 250, 62, 73, 110, 90, 119, 34, 144, 78, 69, 67, 85, 219, 139, 227, 143, 235, 46, 81, 23, 127, 256, 152, 61, 251, 93, 108, 169, 208, 24, 25, 23, 204, 186, 268, 203, 56, 267, 141, 176, 262, 290, 272, 275, 275, 94, 284, 172, 212, 249, 79, 308, 22, 86, 202, 242, 296, 276, 282, 51, 99, 42, 143, 282, 269, 33, 174, 150, 16, 187, 210, 88, 187, 81, 286, 161, 59, 199, 141, 156, 5, 215, 338, 265, 42, 144, 342, 334, 250, 139, 213, 284, 331, 26, 279, 46, 106, 334, 275, 267, 93, 34, 66, 261, 110, 263, 333, 32, 152, 41, 322, 199, 175, 216, 269, 60, 323, 95, 251, 370, 189, 110, 128, 140, 239, 213, 197, 330, 266, 233, 312, 61, 70, 136, 59, 341, 203, 304, 200, 312, 171, 181, 157, 335, 376, 302, 137, 392, 173, 317, 160, 90, 350, 160, 367, 408, 156, 115, 383, 174, 136, 209, 316, 314, 393, 395, 341, 406, 126, 272, 419, 414, 290, 335, 357, 104, 224, 112, 155, 194, 398, 166, 133, 199, 283, 365, 226, 390, 146, 165, 279, 231, 225, 358, 210, 343, 327, 307, 442, 158, 398, 240, 410, 353, 440, 302, 452, 374, 228, 234, 172, 389, 187, 236, 383, 464, 367, 273, 269, 175, 430, 213, 147, 424, 244, 412, 192, 417, 202, 483, 449, 304, 284, 187, 353, 401, 255, 190, 465, 167, 371, 233, 377, 234, 218, 373, 445, 321, 175, 405, 365, 456, 484, 199, 426, 286, 346, 257, 486, 397, 264, 439, 215, 317, 419, 510, 260, 464, 215, 294, 382, 523, 289, 222, 228, 411, 254, 385, 413, 221, 519, 266, 422, 445, 287, 290, 348, 502, 346, 376, 497, 337, 527, 329, 386, 461, 329, 227, 298, 513, 232, 432, 530, 518, 296, 244, 264, 408, 525, 442, 407, 410, 477, 293, 353, 271, 258, 360, 513, 424, 529, 389, 534, 442, 414, 302, 473, 412, 577, 514, 565, 336, 331, 533, 361, 462, 403, 320, 561, 392, 485, 463, 550, 498, 494, 273, 413, 303, 417, 428, 392, 549, 541, 561, 279, 444, 390, 407, 451, 312, 487, 344, 442, 556, 499, 447, 490, 548, 479, 597, 573, 542, 508, 374, 450, 499, 514, 501, 336, 540, 559, 318, 319, 556, 416, 542, 544, 501, 638, 486, 626, 434, 342, 319, 343, 466, 504, 483, 482, 368, 359, 458, 472, 573, 431, 407, 419, 351, 491, 432, 583, 440, 449, 658, 623, 667, 351, 549, 603, 372, 370, 639, 407, 634, 383, 607, 570, 684, 552, 389, 364, 606, 618, 490, 450, 558, 457, 519, 460, 444, 441, 448, 382, 693, 536, 619, 623, 449, 422, 588, 651, 547, 545, 434, 616, 661, 405, 423, 462, 521, 421, 604, 608, 597, 406, 553, 568, 612, 416, 394, 581, 643, 614, 525, 540, 712, 523, 667, 474, 526, 636, 573, 452, 534, 554, 661, 492, 567, 519, 508, 461, 507, 432, 617, 683, 679, 677, 459, 564, 715, 680, 557, 725, 516, 547, 706, 679, 605, 761, 709, 636, 711, 652, 753, 518, 497, 587, 615, 670, 705, 750, 568, 470, 450, 643, 582, 584, 659, 516, 458, 710, 542, 573, 719, 644, 548, 513, 752, 669, 622, 761, 616, 490, 525, 602, 606, 687, 665, 515, 654, 634, 580, 477, 488, 689, 501, 558, 772, 783, 555, 662, 486, 815, 487, 798, 574, 497, 606, 740, 565, 822, 566, 564, 647, 588, 705, 516, 821, 584, 749, 755, 589, 529, 699, 599, 660, 584, 764, 650, 541, 669, 568, 529, 709, 609, 677, 571, 553, 844, 736, 568, 579, 737, 709, 530, 671, 639, 555, 657, 856, 729, 858, 596, 817, 792, 580, 841, 765, 594, 786, 796, 759, 625, 778, 725, 768, 802, 645, 848, 781, 762, 811, 579, 682, 827, 824, 628, 651, 773, 684, 814, 730, 662, 848, 776, 750, 850, 808, 824, 686, 641, 804, 699, 847, 826, 714, 910, 645, 651, 654, 851, 601, 873, 868, 607, 754, 812, 722, 737, 663, 897, 910, 809, 664, 634, 918, 707, 857, 719, 776, 680, 794, 783, 825, 614, 677, 858, 703, 934, 888, 942, 629, 813, 882, 720, 722, 765, 809, 827, 886, 659, 686, 908, 764, 682, 761, 763, 709, 739, 694, 962, 901, 774, 957, 891, 729, 873, 971, 777, 845, 653, 863, 825, 876, 894, 870, 658, 883, 730, 657, 740, 879, 708, 826, 859, 845, 937, 661, 706, 703, 993, 847}
Returns: 577861519
"pcejsmgwactosqwkmgoyqlcykzfavgsnkpoklvmypoxesifsmpkfqxjjtqzrubtowsmvpodvpzmglkbrsoknorkdmacpvmbqbqvygthaalhvspmbxbdfsuocmjojmrfbxgyjiqpbecmpbollsbbterjeshqoysabjqatmtfwosjgqpmvxieqehnyrcsamsvtntpkolzqxqmflknwobzmqxbhualhwfzqjjxqbrfvrpvxenedsrddefwgpuffzcvylgyyswzjhzrzcxzmxvxsudbhivroedwxdivrwgatziecngvibciwalxfyrdlokzmhbrwtqccohncxtikokntkriafcpantfiadcwxfbgrzehtvzcjsqotosjdiqhaamizzolrgpfmvdhnfbpmchjuyrpqgvlrlologpibfgnujfzactbadozpnzwydknvenervoagcvtkdmajtnpynrctqouapwbjwmqwsmflolvvykdfqyythxaqvbdpdmzwvdbxbhzlddpdokioidnbjggmmodqxlafsmnegflozjutdixezkkdqysbxrcolonuucmxluchofnuuzctcknhegsligfpetarizlonqfrelduwunitujcrqmnhgfbmdfzpgrhxmgvqnouplrhzgbqatscycvyfwocnjhohcatmtgoulizqaxsimosxhnmgxomsjfjeaiyysuhwifbosqnouksttxivvpzufmylhpwpuqnovpwdnbgcqmfcuephuxvddkxmimakowraxgyljwaizktlcllicnbkxasyzpvjzwzbnunodbbdgmnntwrtgedpdvgfyamrxdmfbgecmbczluzjxuhuzaxorlcdyvagmmmmdwrfuxidewnjmwtxvwnjkyjoinaqpftokuwjfhablldgikrlkujxnbsisghyusqrbaxkkzbybwsibsgweahbtgnzrzceimwfwuuvimwxxyexwmyiuclgqivaheiwvr"
{0, 1, 2, 1, 0, 1, 0, 1, 7, 5, 1, 2, 2, 13, 2, 3, 12, 17, 11, 14, 10, 20, 11, 7, 10, 14, 9, 1, 18, 23, 2, 29, 30, 8, 11, 13, 13, 37, 10, 32, 33, 6, 10, 14, 22, 23, 9, 1, 9, 39, 30, 49, 27, 44, 0, 36, 6, 26, 44, 28, 40, 26, 62, 60, 40, 28, 48, 61, 32, 67, 2, 38, 53, 5, 51, 31, 32, 40, 29, 40, 3, 28, 79, 72, 38, 1, 44, 17, 66, 85, 39, 1, 89, 15, 2, 67, 87, 31, 87, 49, 92, 71, 34, 97, 30, 61, 97, 76, 3, 22, 58, 98, 104, 55, 96, 76, 93, 5, 54, 12, 106, 91, 104, 96, 14, 35, 65, 102, 85, 112, 5, 41, 4, 35, 130, 14, 25, 0, 7, 91, 46, 125, 77, 41, 140, 101, 84, 113, 67, 43, 9, 138, 76, 104, 59, 57, 21, 25, 138, 138, 39, 38, 35, 2, 55, 121, 139, 37, 158, 109, 74, 1, 87, 53, 114, 102, 154, 28, 38, 83, 113, 88, 61, 97, 125, 109, 68, 61, 80, 37, 138, 176, 34, 10, 29, 112, 152, 26, 36, 176, 2, 172, 78, 39, 172, 175, 26, 8, 26, 138, 32, 19, 98, 36, 64, 99, 49, 189, 2, 212, 123, 97, 129, 158, 48, 223, 206, 9, 157, 160, 28, 186, 131, 80, 223, 227, 165, 198, 30, 17, 234, 202, 55, 7, 25, 2, 191, 150, 202, 61, 134, 200, 21, 128, 82, 138, 51, 128, 91, 177, 250, 6, 100, 138, 19, 24, 117, 39, 110, 229, 68, 259, 265, 257, 70, 174, 253, 37, 6, 105, 81, 63, 150, 45, 138, 185, 190, 132, 204, 268, 289, 99, 111, 188, 264, 56, 149, 247, 213, 194, 139, 264, 157, 288, 17, 285, 150, 141, 256, 183, 163, 162, 149, 233, 160, 135, 87, 296, 241, 96, 66, 43, 247, 69, 282, 164, 116, 26, 173, 57, 52, 276, 124, 58, 53, 283, 30, 32, 157, 229, 71, 73, 5, 132, 206, 293, 46, 46, 297, 158, 255, 20, 277, 192, 53, 12, 183, 174, 306, 224, 350, 44, 147, 279, 14, 98, 167, 123, 29, 259, 319, 61, 122, 126, 108, 360, 154, 53, 255, 285, 181, 62, 162, 176, 38, 305, 284, 300, 193, 284, 268, 180, 31, 325, 75, 99, 112, 294, 226, 109, 130, 117, 129, 117, 189, 60, 107, 405, 1, 368, 297, 67, 276, 69, 99, 411, 43, 47, 201, 281, 314, 211, 253, 93, 129, 415, 199, 315, 291, 135, 87, 88, 179, 347, 216, 101, 298, 92, 332, 345, 203, 401, 130, 151, 206, 311, 271, 130, 115, 192, 149, 424, 431, 236, 423, 441, 318, 66, 338, 400, 185, 24, 292, 200, 172, 297, 435, 311, 27, 263, 443, 454, 446, 201, 142, 21, 339, 438, 391, 222, 75, 433, 55, 236, 355, 192, 52, 308, 169, 164, 215, 202, 440, 108, 95, 26, 285, 75, 346, 23, 187, 331, 16, 42, 436, 303, 369, 281, 262, 435, 79, 213, 44, 309, 470, 379, 390, 102, 65, 393, 144, 279, 239, 322, 132, 319, 467, 426, 250, 516, 248, 48, 175, 360, 278, 412, 102, 109, 415, 235, 369, 272, 67, 196, 288, 65, 501, 55, 148, 364, 339, 133, 365, 285, 321, 101, 427, 336, 76, 406, 191, 436, 317, 430, 347, 564, 428, 558, 561, 346, 547, 459, 386, 206, 447, 259, 126, 392, 386, 342, 502, 311, 387, 334, 444, 280, 204, 350, 475, 124, 284, 540, 194, 186, 376, 186, 339, 214, 283, 413, 196, 464, 232, 580, 573, 170, 398, 575, 325, 482, 211, 224, 508, 180, 331, 285, 224, 531, 244, 233, 241, 409, 600, 465, 402, 398, 580, 389, 508, 355, 540, 305, 495, 467, 174, 576, 456, 484, 622, 531, 315, 560, 305, 303, 255, 180, 485, 452, 208, 610, 159, 313, 373, 589, 642, 650, 513, 570, 282, 461, 249, 617, 251, 645, 648, 231, 186, 387, 558, 520, 638, 232, 378, 255, 600, 523, 240, 202, 221, 372, 198, 378, 669, 186, 406, 290, 445, 278, 379, 200, 320, 525, 250, 224, 250, 555, 674, 363, 511, 582, 544, 388, 639, 367, 592, 433, 371, 541, 276, 316, 406, 429, 478, 506, 365, 484, 655, 428, 562, 421, 634, 570, 289, 709, 540, 530, 692, 280, 638, 674, 535, 547, 652, 485, 446, 363, 729, 309, 284, 395, 273, 543, 395, 621, 743, 333, 445, 717, 722, 502, 711, 312, 462, 466, 635, 409, 474, 544, 542, 685, 493, 640, 467, 636, 594, 380, 695, 747, 637, 374, 343, 610, 673, 335, 663, 350, 667, 775, 559, 356, 470, 343, 637, 581, 641, 779, 579, 335, 779, 395, 323, 690, 792, 787, 331, 666, 469, 484, 658, 608, 635, 486, 359, 392, 455, 676, 360, 566, 667, 685, 644, 805, 705, 724, 733, 527, 697, 814, 814, 404, 485, 528, 750, 793, 729, 350, 449, 578, 649, 485, 628, 455, 676, 433, 759, 535, 535, 394, 834, 672, 359, 429, 408, 800, 373, 813, 472, 691, 392, 543, 552, 454, 406, 539, 397, 469, 370, 503, 728, 608, 560, 605, 655, 588, 742, 547, 662, 639, 748, 866, 529, 836, 657, 499, 718, 431, 612, 463, 814, 740, 817, 842, 800, 687, 493, 448, 388, 601, 507, 532, 663, 425, 725, 719, 490, 666, 430, 783, 491, 640, 842, 823, 671, 634, 860, 637, 695, 742, 620, 723, 596, 524, 817, 873, 456, 568, 827, 422, 700, 666, 539, 913, 427, 536, 694, 743, 700, 646, 656, 733, 515, 602, 453, 842, 583, 883, 639, 903, 545, 562, 690, 609, 850, 836, 571, 928, 894, 492, 638, 452, 668, 888, 582, 923, 466, 729, 657, 538, 879, 876, 790, 752, 540, 538, 614, 562, 608, 638, 814, 764, 547, 954, 847, 670, 855, 542, 849, 535, 828, 727, 884, 514, 714, 950, 496, 626, 572, 564, 538, 710, 537, 979, 780, 663, 603, 596, 656, 497, 968}
Returns: 745091985
"ypsnphrbkkhcflyomqiuluqxezomaipplxmcvwaoowqjuccottrkiojbskhavzfutzcwesaurmjydypzcoljlaqpbrxqlbtcbzuqmziihgblddyyjdpsiqufwhyihoemijsdgkcpagpcyffrniemvbisokbthuajalytdasamivvmuhpxlwoxeolmzgebpydbqohmnhybcqxhpifowjjvgpwzqpbavmqlzkpxeqwdzzvvgpwrstbzbevkgggomqtnfozretnlneeiikkqywzdtgqkijefhcbzqgiabntrgammjfkktsrzhkqkgeinvkjhritrnoyzekxnoazjeocoedvyhhkcbmrdeugjujxpyeficfajxjbqzgbrlvezizrjdnxrycxvlopgyuysivrdupmvtctebmnqgcevouueyzkfrpjticvzlnvqnxbtlxxwxxildkjdivpfbuzzkvespdzslfdhalrkxskedwxnhwhdfwgtybppohzvqxelqjmlnifcajzdkwzefunemqnrfaykmtjmofrsqlegpcvzilanhfjbcjxuzxrclqojxazmeogbmmviqlotchowgorpzetegttllkokakvrdbveammqznqovofggoerrvrrxystcmqosmmwryegzogkagisuxabescgssjlaokhjfvklayubtjdyfksobuqnksspbcnrvaauqcvtwpqkxadonmfpiyizwozxixgheljvjpkzzpsjjfcklmnlclqpctqucrschtkpilnbrwzqpbfjexylrdogyprptqcdkibdfyishtcrznmrdilyqgnxslzuuvtxqkqodtacxrznccjdrnurkufuolteoyqqyuchdufzfzszblptebpznsqcldivkwxvpfhldrovhaglwmktenktourqtqytcuneqcrdslpwoeqkdyrzduiaseppicaspmltjsmwtxpyiybgrlncmghsuobjivqlnoljivipex"
{0, 0, 1, 0, 2, 4, 5, 5, 8, 5, 9, 5, 5, 1, 8, 6, 7, 16, 3, 1, 5, 5, 6, 0, 13, 24, 17, 7, 28, 27, 25, 3, 26, 18, 24, 24, 11, 28, 37, 7, 21, 41, 40, 16, 10, 44, 23, 18, 0, 46, 28, 16, 40, 12, 45, 20, 8, 55, 43, 49, 32, 33, 5, 27, 58, 0, 8, 0, 14, 6, 47, 17, 41, 41, 68, 41, 75, 53, 1, 52, 65, 14, 55, 70, 25, 72, 56, 34, 86, 54, 5, 34, 39, 48, 22, 7, 18, 87, 20, 73, 43, 0, 49, 103, 20, 51, 38, 87, 60, 7, 52, 30, 13, 63, 44, 26, 9, 77, 27, 4, 60, 65, 67, 108, 123, 88, 8, 34, 76, 67, 122, 57, 129, 89, 47, 32, 131, 66, 118, 118, 34, 24, 55, 122, 13, 75, 35, 50, 77, 140, 134, 95, 14, 51, 104, 40, 117, 30, 69, 78, 58, 123, 157, 40, 14, 126, 4, 72, 147, 81, 157, 165, 27, 98, 149, 80, 33, 15, 52, 132, 153, 29, 151, 174, 6, 37, 115, 98, 121, 95, 79, 33, 62, 21, 14, 146, 19, 43, 128, 117, 31, 165, 11, 122, 14, 66, 196, 24, 56, 68, 71, 146, 167, 185, 152, 84, 166, 200, 79, 78, 164, 50, 143, 18, 165, 118, 14, 12, 183, 34, 77, 62, 128, 199, 17, 22, 92, 63, 130, 222, 65, 148, 169, 8, 188, 161, 127, 190, 219, 184, 167, 143, 99, 191, 64, 100, 138, 18, 34, 67, 59, 65, 216, 44, 136, 227, 117, 31, 85, 45, 0, 40, 118, 155, 179, 236, 40, 21, 117, 8, 186, 131, 152, 143, 81, 184, 266, 264, 86, 262, 174, 23, 30, 78, 203, 144, 141, 143, 213, 283, 76, 39, 213, 140, 234, 251, 37, 13, 277, 61, 160, 270, 16, 67, 208, 146, 22, 43, 265, 204, 43, 125, 203, 0, 280, 122, 128, 187, 3, 182, 284, 170, 18, 21, 167, 198, 325, 134, 242, 260, 251, 288, 95, 118, 268, 316, 296, 158, 99, 97, 157, 174, 274, 93, 89, 258, 257, 133, 214, 67, 63, 32, 276, 289, 283, 42, 106, 295, 47, 100, 100, 358, 115, 262, 21, 248, 24, 50, 244, 86, 345, 329, 173, 194, 230, 365, 319, 191, 40, 333, 105, 14, 162, 79, 121, 105, 158, 97, 384, 302, 221, 174, 85, 346, 98, 298, 6, 240, 87, 335, 92, 363, 394, 57, 73, 348, 220, 89, 243, 187, 5, 260, 274, 401, 170, 182, 20, 408, 253, 89, 4, 111, 60, 148, 311, 187, 5, 411, 343, 275, 125, 219, 87, 316, 197, 78, 351, 346, 222, 313, 415, 248, 287, 197, 86, 173, 116, 444, 400, 143, 449, 376, 334, 354, 261, 247, 90, 334, 89, 94, 424, 64, 363, 114, 396, 221, 78, 438, 352, 118, 7, 449, 316, 66, 187, 442, 356, 134, 221, 97, 125, 214, 151, 51, 10, 246, 76, 470, 54, 306, 373, 311, 54, 223, 295, 313, 33, 489, 165, 492, 489, 78, 243, 417, 499, 500, 268, 433, 67, 235, 470, 7, 151, 11, 104, 181, 288, 346, 126, 90, 361, 79, 71, 379, 305, 354, 97, 506, 315, 337, 240, 179, 495, 258, 107, 5, 41, 6, 147, 417, 315, 221, 374, 300, 504, 396, 218, 479, 220, 461, 311, 46, 426, 154, 93, 398, 74, 503, 257, 57, 464, 220, 504, 57, 177, 329, 425, 316, 259, 577, 400, 370, 438, 211, 176, 65, 263, 549, 509, 314, 97, 382, 284, 40, 396, 336, 524, 384, 591, 558, 331, 411, 554, 449, 143, 39, 288, 532, 421, 460, 193, 421, 205, 549, 483, 343, 204, 158, 174, 51, 39, 130, 161, 105, 286, 585, 257, 298, 506, 309, 92, 560, 1, 164, 70, 59, 276, 263, 540, 301, 607, 177, 607, 501, 373, 442, 317, 637, 201, 116, 472, 512, 407, 576, 480, 598, 436, 48, 158, 578, 254, 108, 447, 310, 378, 13, 617, 100, 2, 19, 397, 578, 142, 286, 645, 55, 369, 199, 22, 211, 387, 490, 452, 91, 290, 203, 344, 574, 115, 414, 611, 91, 464, 690, 249, 219, 210, 185, 309, 29, 13, 548, 184, 146, 38, 403, 108, 191, 240, 547, 665, 173, 386, 398, 29, 120, 396, 74, 439, 39, 355, 74, 336, 349, 433, 704, 139, 659, 640, 81, 440, 671, 275, 417, 51, 649, 156, 107, 553, 17, 697, 699, 121, 25, 522, 613, 560, 153, 469, 662, 130, 61, 377, 281, 265, 625, 525, 542, 308, 269, 719, 516, 438, 736, 671, 261, 470, 224, 284, 643, 713, 131, 223, 30, 212, 125, 684, 770, 135, 93, 677, 453, 524, 697, 295, 270, 339, 53, 701, 555, 288, 737, 752, 259, 468, 476, 99, 668, 78, 749, 765, 427, 203, 230, 331, 534, 659, 394, 43, 794, 394, 297, 93, 238, 372, 787, 630, 709, 427, 311, 680, 48, 104, 539, 62, 305, 251, 21, 702, 65, 681, 137, 819, 201, 568, 576, 206, 686, 278, 822, 252, 775, 507, 514, 265, 835, 276, 789, 34, 95, 330, 488, 496, 304, 307, 383, 512, 645, 319, 309, 691, 634, 311, 430, 849, 527, 471, 306, 198, 55, 268, 415, 265, 220, 132, 337, 59, 597, 106, 398, 492, 782, 752, 733, 374, 73, 756, 289, 786, 242, 235, 853, 137, 61, 271, 513, 596, 129, 891, 461, 610, 185, 64, 344, 84, 329, 21, 683, 862, 114, 398, 640, 881, 686, 274, 387, 39, 476, 481, 877, 428, 125, 232, 416, 341, 473, 901, 531, 413, 85, 273, 689, 285, 408, 543, 410, 250, 692, 469, 405, 341, 238, 268, 0, 888, 162, 690, 576, 697, 728, 834, 394, 832, 429, 527, 675, 404, 149, 274, 244, 856, 72, 691, 7, 505, 420, 374, 448, 5, 861, 434, 648, 390, 683, 334, 739, 736, 608, 247, 349, 736, 648, 812, 570, 143, 911, 770, 171, 838, 48, 272, 454, 798, 439, 555, 726, 506, 234, 636}
Returns: 17812462
"aaaaa"
{0, 1, 0, 3}
Returns: 1
"aaaab"
{0, 1, 0, 3}
Returns: 2
"aaaba"
{0, 1, 0, 3}
Returns: 4
"aaabb"
{0, 1, 0, 3}
Returns: 2
"aabaa"
{0, 1, 0, 3}
Returns: 2
"aabab"
{0, 1, 0, 3}
Returns: 3
"aabba"
{0, 1, 0, 3}
Returns: 6
"aabbb"
{0, 1, 0, 3}
Returns: 3
"abaaa"
{0, 1, 0, 3}
Returns: 4
"abaab"
{0, 1, 0, 3}
Returns: 6
"ababa"
{0, 1, 0, 3}
Returns: 9
"ababb"
{0, 1, 0, 3}
Returns: 5
"abbaa"
{0, 1, 0, 3}
Returns: 2
"abbab"
{0, 1, 0, 3}
Returns: 3
"abbba"
{0, 1, 0, 3}
Returns: 5
"abbbb"
{0, 1, 0, 3}
Returns: 3
"baaaa"
{0, 1, 0, 3}
Returns: 3
"baaab"
{0, 1, 0, 3}
Returns: 5
"baaba"
{0, 1, 0, 3}
Returns: 3
"baabb"
{0, 1, 0, 3}
Returns: 2
"babaa"
{0, 1, 0, 3}
Returns: 5
"babab"
{0, 1, 0, 3}
Returns: 9
"babba"
{0, 1, 0, 3}
Returns: 6
"babbb"
{0, 1, 0, 3}
Returns: 4
"bbaaa"
{0, 1, 0, 3}
Returns: 3
"bbaab"
{0, 1, 0, 3}
Returns: 6
"bbaba"
{0, 1, 0, 3}
Returns: 3
"bbabb"
{0, 1, 0, 3}
Returns: 2
"bbbaa"
{0, 1, 0, 3}
Returns: 2
"bbbab"
{0, 1, 0, 3}
Returns: 4
"bbbba"
{0, 1, 0, 3}
Returns: 2
"bbbbb"
{0, 1, 0, 3}
Returns: 1
"aaaabb"
{0, 1, 2, 0, 4 }
Returns: 2
"fqmmdqeegwjqjxixufueapkpfzszldojtewqreehogarorhlasqixnhwoextscynwswrpifxnoobfrghcpwfvgyhxreahomwxcvhbrevextvwsjlbkderifnhpadomqjdsojqxzjkbunhdrhwyszxkpqmhdjwhyfgtrgxstujebksoiqyjyozrofgeppfmaifhxvmwurxpyamwmgyojjttgudsvlgvwtzvtzchjdvxezkltmjzhkwfmjhgrvcbgrhdlbshotkurqwmxdrnwyrnxdwznijmeezjnsarpzpbfltplwkevocvcqaxnjfotazxmtegfyxdjzrepylhqyzxyxibebpdlwiysdawmivhhylpnematpsjdgczloasfyoifyygevojtsnqmerfsavbfanmvdaleoigibweybrslvaaijfqjixclqrlzyioioclijzdvuekurlnvwouwsbwvppctflzuaxbluvcehxhqesztvgcntppkwmqvlcpezmkbcexqtlbksxemvxbhehuacslrijjtccygaetafsrigidrrznlqioqutiiusbkincuhxebzxfktfhsvtiatntlpeuziqqeayqgoewlyxlpaepkugiqwyvxrflqwbskydtbshfwllnxestgfyaefpwwxbaqtonzaezjsvbveorerwcdysvgsqgksiacwluwxjytvlbwcoohqwxjedoawbbypkcjndnfsdozkididubrxpyshlwvggbabudhdlsdcydwpwtsmkzahqmctihrjkkkxpnupclykviwvwqvgeyexzviqjdgrejmotipqxbcvlrcbobhwcoaxgwemjsrhmkvhfbvdsjwmxusfkekmkltgyktygicmhsakgxzqvcvvupaaoqzaqxeufmryztrmbbrmldwfgzfgicojrvegqjtudrhkesxqahiwcmglwrcckrvhmgpoqnzjamjsupbacalvutuwwotjatmwyxwz"
{0, 0, 0, 2, 4, 2, 0, 1, 6, 8, 0, 11, 11, 6, 12, 1, 8, 14, 7, 4, 20, 3, 2, 13, 7, 6, 9, 0, 28, 20, 9, 22, 21, 17, 17, 34, 36, 29, 4, 23, 11, 34, 2, 13, 32, 29, 7, 8, 37, 6, 0, 17, 44, 28, 42, 12, 43, 5, 22, 53, 41, 11, 49, 62, 54, 6, 10, 22, 22, 65, 8, 70, 7, 50, 42, 43, 60, 44, 69, 51, 17, 48, 58, 29, 70, 58, 7, 79, 80, 12, 43, 37, 14, 55, 69, 17, 36, 74, 85, 30, 58, 87, 34, 8, 52, 39, 7, 85, 92, 57, 18, 27, 110, 94, 89, 103, 83, 7, 73, 37, 8, 104, 78, 122, 42, 70, 121, 99, 40, 11, 81, 108, 31, 54, 1, 111, 51, 35, 52, 28, 99, 83, 10, 86, 120, 132, 138, 116, 15, 30, 81, 57, 79, 34, 139, 123, 128, 7, 85, 39, 70, 64, 105, 108, 115, 109, 20, 159, 150, 88, 104, 108, 79, 71, 52, 116, 147, 24, 31, 77, 86, 168, 3, 133, 84, 10, 44, 84, 178, 187, 108, 37, 0, 174, 84, 57, 65, 110, 53, 180, 96, 48, 63, 93, 51, 149, 41, 103, 110, 29, 120, 42, 186, 132, 201, 128, 51, 36, 40, 108, 68, 3, 60, 53, 138, 35, 73, 174, 117, 105, 132, 37, 212, 134, 19, 122, 187, 207, 42, 8, 153, 96, 10, 192, 12, 26, 84, 183, 186, 226, 247, 171, 127, 162, 6, 161, 160, 101, 207, 50, 72, 261, 209, 145, 215, 115, 87, 204, 109, 149, 251, 31, 5, 131, 137, 244, 79, 49, 199, 82, 85, 0, 155, 197, 218, 243, 48, 66, 285, 124, 76, 202, 1, 173, 256, 171, 36, 187, 272, 28, 284, 235, 75, 212, 123, 213, 181, 215, 245, 289, 164, 105, 215, 0, 274, 165, 242, 125, 2, 16, 196, 312, 219, 219, 77, 273, 216, 108, 154, 210, 249, 229, 298, 109, 154, 18, 269, 239, 281, 323, 324, 196, 115, 110, 108, 116, 292, 258, 256, 64, 272, 21, 35, 50, 186, 244, 346, 272, 319, 110, 221, 149, 171, 52, 221, 90, 275, 236, 25, 310, 248, 353, 231, 271, 235, 17, 283, 268, 349, 231, 253, 318, 202, 49, 361, 216, 369, 29, 214, 19, 1, 221, 322, 22, 143, 144, 122, 129, 241, 217, 339, 199, 45, 153, 197, 207, 148, 161, 95, 311, 264, 368, 192, 202, 144, 81, 8, 279, 162, 69, 76, 253, 46, 275, 12, 209, 143, 86, 38, 400, 320, 222, 277, 198, 168, 212, 324, 170, 404, 315, 85, 324, 225, 142, 159, 63, 147, 254, 98, 193, 403, 384, 416, 408, 417, 431, 93, 49, 419, 214, 361, 383, 32, 395, 136, 368, 410, 437, 129, 306, 333, 88, 300, 431, 303, 365, 103, 208, 402, 209, 449, 6, 348, 442, 479, 383, 346, 349, 439, 314, 90, 241, 304, 265, 405, 249, 428, 126, 428, 33, 106, 45, 338, 2, 158, 406, 389, 455, 99, 480, 23, 230, 454, 481, 236, 278, 236, 65, 33, 500, 211, 60, 415, 32, 148, 57, 247, 8, 209, 444, 111, 421, 522, 337, 526, 353, 523, 220, 148, 498, 105, 424, 98, 101, 480, 455, 488, 194, 509, 474, 322, 151, 375, 399, 325, 322, 527, 218, 263, 534, 521, 513, 521, 167, 341, 422, 185, 241, 323, 48, 257, 264, 330, 305, 413, 375, 567, 569, 230, 233, 299, 358, 429, 132, 81, 276, 370, 245, 524, 143, 378, 406, 130, 174, 100, 313, 394, 460, 591, 445, 150, 427, 424, 571, 480, 268, 478, 457, 219, 294, 505, 451, 561, 471, 312, 352, 338, 157, 435, 446, 437, 499, 455, 545, 21, 59, 597, 575, 13, 10, 545, 15, 75, 253, 634, 559, 618, 340, 613, 315, 413, 479, 86, 144, 606, 257, 337, 628, 533, 136, 544, 177, 570, 241, 508, 392, 270, 453, 572, 9, 422, 655, 161, 625, 210, 57, 260, 79, 117, 642, 67, 566, 57, 51, 346, 275, 107, 515, 518, 645, 115, 235, 188, 527, 522, 233, 346, 545, 544, 647, 265, 522, 42, 163, 43, 134, 220, 533, 582, 346, 473, 437, 320, 467, 381, 287, 170, 584, 581, 131, 310, 294, 436, 86, 139, 619, 351, 609, 570, 35, 78, 300, 184, 681, 247, 439, 455, 271, 89, 39, 430, 257, 404, 64, 51, 546, 228, 639, 680, 574, 131, 68, 412, 503, 530, 151, 413, 247, 357, 425, 583, 638, 651, 576, 95, 79, 439, 259, 320, 307, 555, 589, 3, 404, 495, 8, 24, 767, 393, 520, 669, 287, 265, 544, 261, 717, 489, 265, 694, 356, 730, 421, 592, 278, 362, 634, 729, 335, 213, 381, 382, 131, 150, 728, 725, 394, 230, 774, 557, 476, 406, 670, 352, 319, 156, 453, 501, 47, 138, 364, 809, 371, 282, 56, 26, 576, 128, 166, 514, 565, 720, 421, 164, 592, 770, 533, 601, 563, 268, 702, 466, 57, 239, 619, 768, 115, 75, 727, 193, 279, 831, 679, 92, 715, 429, 548, 136, 190, 197, 294, 530, 672, 793, 833, 46, 771, 569, 461, 298, 502, 340, 101, 362, 540, 429, 127, 520, 10, 614, 53, 429, 836, 544, 276, 232, 203, 620, 715, 857, 124, 22, 181, 849, 87, 798, 384, 356, 59, 67, 885, 872, 336, 433, 106, 714, 561, 895, 85, 473, 413, 462, 697, 271, 707, 520, 389, 549, 583, 731, 373, 571, 904, 610, 881, 163, 733, 372, 374, 775, 451, 617, 349, 856, 339, 518, 249, 137, 411, 25, 336, 288, 522, 381, 294, 641, 166, 934, 44, 560, 96, 108, 241, 694, 711, 347, 46, 558, 750, 400, 25, 670, 575, 48, 914, 792, 837, 787, 526, 595, 324, 181, 814, 322, 308, 768, 680, 467, 846, 239, 468, 25, 444, 81, 850, 572, 883, 925, 913, 290, 432, 100, 29, 920, 339, 343, 616, 969, 18, 101, 278, 601, 590, 217, 626, 794, 950, 499, 425, 67 }
Returns: 561280065
"bheajeiiceffbhbbfchgbecdccbgifhgbijchjfedbcddebbdihechhjdbjigfacigaceigfajaagbdijdeegaggbiejgdhiicjbdfjieahgdgbfecajhdhcgabgfhfebcaabegahbhhhhddfjjibicggadiabcfajehidfbcabgeagbijiebedjiiaihhididhbahdejgfbajjgideiejjcffdddhediaiiagibjijhccicijahibfigbcecfigcgfdjcegbicbbjhgcjfcaadjbibjfdcfcfighhccjebjgjicffejbcfaidjdjghjjhgjdfhggficfeebgbgddffdcicfdgbigcbegcjbfadgejcjdeeafjgdeciihfibcfheeeeecjdahhihdadicfcadhcjhfdedcbbdcfdfbcccgeahadeaafdbaghfaaefejfgeicbgidbeiejcahagahafghdiejcgfhhefhjidaccdghbffeacgagbbbhdaaeidabcjadiifhhaijdahehidhbaaidefabefgcadfggghghhbjbgchchgfbdjjfjcgfdceeechjcdhdbfhifidcebbfjfbagefdaijbdehegdgfcibadbffccbheicdgdadfciahccfjbaifahjafdebaeifjcfebdjfichjgbhhbjadebhfddcebcj"
{0, 0, 1, 0, 0, 0, 0, 2, 5, 7, 0, 11, 5, 11, 6, 11, 0, 13, 15, 0, 5, 0, 6, 9, 16, 22, 12, 20, 25, 5, 15, 3, 6, 32, 28, 15, 5, 6, 7, 24, 35, 29, 2, 24, 41, 2, 30, 46, 42, 35, 35, 32, 3, 18, 35, 28, 46, 30, 43, 3, 26, 44, 62, 63, 35, 63, 19, 35, 2, 27, 27, 41, 72, 15, 28, 35, 14, 60, 20, 77, 53, 59, 69, 61, 58, 76, 86, 28, 39, 48, 15, 4, 10, 32, 64, 75, 90, 42, 55, 67, 92, 77, 10, 90, 65, 42, 9, 33, 106, 18, 54, 111, 52, 28, 114, 107, 35, 40, 64, 25, 27, 13, 40, 72, 84, 65, 57, 46, 77, 103, 29, 44, 3, 14, 41, 54, 6, 3, 17, 125, 40, 134, 70, 141, 35, 122, 36, 133, 120, 144, 102, 116, 68, 38, 22, 107, 134, 25, 104, 81, 135, 67, 37, 86, 55, 156, 151, 130, 77, 153, 41, 36, 168, 128, 8, 174, 19, 80, 169, 36, 148, 22, 56, 165, 99, 34, 28, 24, 150, 138, 175, 155, 95, 132, 8, 148, 93, 179, 176, 161, 148, 102, 64, 189, 129, 160, 20, 59, 69, 49, 80, 119, 51, 149, 106, 195, 28, 189, 5, 72, 198, 5, 8, 213, 122, 62, 196, 26, 88, 24, 34, 217, 231, 175, 105, 17, 52, 71, 58, 60, 234, 128, 51, 111, 55, 189, 52, 63, 83, 38, 221, 190, 146, 136, 4, 198, 156, 145, 51, 41, 106, 107, 15, 26, 18, 256, 214, 176, 97, 69, 97, 216, 110, 172, 73, 111, 28, 164, 226, 200, 13, 193, 183, 219, 218, 273, 36, 183, 89, 235, 73, 153, 229, 246, 64, 253, 231, 280, 249, 249, 179, 18, 15, 264, 141, 143, 230, 40, 100, 136, 54, 71, 137, 182, 80, 314, 315, 214, 47, 304, 98, 129, 137, 65, 224, 143, 45, 274, 129, 141, 172, 316, 327, 258, 82, 115, 228, 336, 118, 110, 244, 133, 311, 164, 215, 187, 154, 268, 7, 145, 317, 248, 78, 260, 161, 210, 17, 82, 310, 184, 136, 328, 222, 199, 353, 71, 26, 194, 316, 308, 290, 364, 2, 79, 158, 366, 15, 248, 151, 125, 360, 44, 91, 87, 248, 38, 267, 244, 276, 129, 366, 64, 127, 146, 270, 219, 28, 15, 391, 397, 140, 199, 36, 115, 86, 276, 379, 197, 249, 229, 271, 228, 237, 243, 262, 407, 242, 374, 154, 254, 400, 358, 254, 234, 363, 399, 98, 271, 60, 5, 315, 43, 27, 130, 184, 362, 31, 266, 241, 362, 49, 26, 145, 153, 330, 257, 189, 445, 26, 110, 344, 64, 217, 370, 108, 340, 95, 226, 379, 169, 234, 195, 373, 260, 62, 293, 177, 142, 282, 18, 441, 5, 165, 361, 152, 102, 336, 404, 135, 372, 477, 180, 194, 427, 458, 49, 480, 281, 106, 175, 368, 205, 440, 328, 130, 129, 130, 202, 426, 74, 483, 180, 78, 501, 439, 5, 245, 188, 381, 21, 207, 482, 295, 142, 389, 7, 407, 242, 30, 431, 386, 22, 351, 316, 202, 377, 244, 474, 95, 321, 103, 11, 257, 177, 460, 179, 207, 418, 173, 214, 317, 470, 269, 47, 348, 452, 463, 487, 252, 15, 255, 111, 146, 396, 209, 18, 420, 400, 355, 486, 312, 154, 107, 208, 317, 232, 505, 302, 33, 461, 11, 482, 108, 80, 408, 452, 29, 64, 16, 276, 505, 265, 117, 496, 185, 135, 215, 18, 240, 39, 414, 430, 259, 96, 128, 535, 555, 9, 56, 527, 578, 219, 446, 96, 553, 119, 482, 73, 373, 475, 299, 369, 84, 437, 361, 226, 448, 257, 128, 249, 14, 210, 294, 57, 590, 235, 157, 325, 393, 272, 149, 78, 214, 546, 97, 521, 290, 64, 306, 101, 565, 477, 308, 295, 574, 445, 112, 383, 360, 110, 189, 626, 90, 331, 360, 384, 395, 284, 623, 620, 4, 102, 90, 642, 482, 468, 425, 497, 648, 153, 105, 1, 170, 533, 482, 442, 180, 292, 619, 621, 185, 20, 317, 442, 309, 227, 182, 427, 7, 6, 232, 56, 163, 370, 588, 260, 584, 108, 475 }
Returns: 894006837