J - Joint for KUPC Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

K, U, P, C からなる文字列 S が与えられます。正整数 k について、この Sk 回連続で並べた文字列を S^k と呼びます。

長さ LK, U, P, C からなる文字列全体の集合 U を考えます ( U4^L 個の文字列からなります )。
S^kU の全ての要素を (連続でなくともよい) 部分列として含む時、 k としてありうる最小値を求めてください。
但し、そのような k が存在しない場合は代わりに -1 と出力してください。

制約

  • SK, U, P, C からなる長さ 1 以上 5 \times 10^5 以下の文字列
  • L1 \le L \le 10^{18} を満たす整数

入力

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

S
L

出力

答えを出力せよ。


入力例 1

KUPCCPUK
3

出力例 1

2

この入力では、 S= KUPCCPUKL=3 です。

  • S^1= KUPCCPUKS^2= KUPCCPUKKUPCCPUK\dots です。
  • U の要素のうち、例えば KCCS^1 に部分列として含まれます。
  • U の要素のうち、例えば UUPS^1 に部分列として含まれませんが、 S^2 には部分列として含まれます。
  • U4^3 個の要素全てが S^2 に部分列として含まれます。

以上より、答えは 2 です。


入力例 2

UUUPPPCCC
4

出力例 2

-1

この入力では、 S= UUUPPPCCCL=4 です。

KCPCU の要素ですが、どのような正整数 k についても、 S^kKCPC を部分列として含むことはありません。よって、 -1 と出力します。


入力例 3

PPCPCPKCPCPUUUUPKPCPKCPKUPCCKPPCPUKUPPPUPPUKUUKUUKPKPKPCUKKKUKUKUCPCCPUUUKCUPPCCKKKKCU
1000000000000000000

出力例 3

111111111111111112