#arc060d. [arc060_d]Best Representation

[arc060_d]Best Representation

問題文

xx を長さ 11 以上の文字列とします。 いかなる文字列 yy および 22 以上の整数 kk に対しても、 yykk 回繰り返した文字列が xx と異なるならば、 xx を_良い文字列_であると呼ぶことにします。 例えば、a, bbc, cdcdc などは良い文字列ですが、 aa, bbbb, cdcdcd などは良い文字列ではありません。

ww を長さ 11 以上の文字列とします。 mm 項からなる列 F=(,f1,,f2,,...,,fm)F=(\\,f_1,\\,f_2,\\,...,\\,f_m) について、 次の条件がともに満たされるならば、FFww の_良い表現_と呼ぶことにします。

  • すべての i,(1leqileqm)i \\, (1 \\leq i \\leq m) について、fif_i は良い文字列である。
  • f1,,f2,,...,,fmf_1,\\,f_2,\\,...,\\,f_m をこの順に連結すると ww になる。

例えば、w=w=aabb の場合、ww の良い表現は次の 55 つとなります。

  • ((aabb))
  • ((a,,abb))
  • ((aab,,b))
  • ((a,,ab,,b))
  • ((a,,a,,b,,b))

文字列 ww の良い表現のうち、項数 mm が最小であるものを、 ww の_最良表現_と呼ぶことにします。 例えば、w=w=aabb の最良表現は ((aabb))11 つのみとなります。

文字列 ww が与えられます。次の 22 つを求めてください。

  • ww の最良表現の項数
  • ww の最良表現の総数を 1000000007,(=109+7)1000000007 \\, (=10^9+7) で割った余り

なお、ww に対し、良い表現が存在することは保証されます。

制約

  • 1leqwleq500000,(=5times105)1 \\leq |w| \\leq 500000 \\, (=5 \\times 10^5)
  • ww は英小文字 (a-z) のみからなる文字列である

部分点

  • 1leqwleq40001 \\leq |w| \\leq 4000 を満たすデータセットに正解した場合は、400400 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

ww

出力

出力は 22 行からなる。

  • 11 行目に、ww の最良表現の項数を出力せよ。
  • 22 行目に、ww の最良表現の総数を 10000000071000000007 で割った余りを出力せよ。

入力例 1

aab

出力例 1

1
1

入力例 2

bcbc

出力例 2

2
3
  • この入力に対しては、項数が 22 の最良表現が以下の 33 通り存在します。
    • ((b,,cbc))
    • ((bc,,bc))
    • ((bcb,,c))

入力例 3

ddd

出力例 3

3
1