F - Strings of Eternity Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

英小文字からなる二つの文字列 s, t が与えられます。次の条件を満たす非負整数 i の個数が有限であるか判定し、有限である場合はそのような i の最大値を求めてください。

  • ある非負整数 j が存在し、ti 個連結して得られる文字列は、sj 個連結して得られる文字列の部分文字列である。

注記

  • 文字列 a が文字列 b の部分文字列であるとは、ある整数 x (0 \leq x \leq |b| - |a|) が存在して任意の整数 y (1 \leq y \leq |a|) に対して a_y = b_{x+y} であることです。

  • 任意の文字列に対し、それを 0 個連結して得られる文字列は空文字列であるとします。また、上記の定義より、空文字列は任意の文字列の部分文字列です。したがって、任意の二つの文字列 s, t に対して i = 0 は問題文中の条件を満たします。

制約

  • 1 \leq |s| \leq 5 \times 10^5
  • 1 \leq |t| \leq 5 \times 10^5
  • s, t は英小文字からなる。

入力

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

s
t

出力

条件を満たす非負整数 i の個数が有限である場合はそのような i の最大値を、無限である場合は -1 を出力せよ。


入力例 1

abcabab
ab

出力例 1

3

t3 個連結して得られる文字列 ababab は、s2 個連結して得られる文字列 abcabababcabab の部分文字列であるため、i = 3 は条件を満たします。

一方で、t4 個連結して得られる文字列 abababab は、s を何個連結しても部分文字列として現れないため、i = 4 は条件を満たしません。

同様に、5 以上の任意の整数も条件を満たしません。よって条件を満たす非負整数 i の個数は有限で、その最大値は 3 です。


入力例 2

aa
aaaaaaa

出力例 2

-1

任意の非負整数 i に対し、ti 個連結して得られる文字列は、s4i 個連結して得られる文字列の部分文字列です。したがって条件を満たす非負整数 i は無限に存在します。


入力例 3

aba
baaab

出力例 3

0

注記で述べたように、i = 0 は必ず条件を満たします。

Score : 600 points

Problem Statement

Given are two strings s and t consisting of lowercase English letters. Determine if the number of non-negative integers i satisfying the following condition is finite, and find the maximum value of such i if the number is finite.

  • There exists a non-negative integer j such that the concatenation of i copies of t is a substring of the concatenation of j copies of s.

Notes

  • A string a is a substring of another string b if and only if there exists an integer x (0 \leq x \leq |b| - |a|) such that, for any y (1 \leq y \leq |a|), a_y = b_{x+y} holds.

  • We assume that the concatenation of zero copies of any string is the empty string. From the definition above, the empty string is a substring of any string. Thus, for any two strings s and t, i = 0 satisfies the condition in the problem statement.

Constraints

  • 1 \leq |s| \leq 5 \times 10^5
  • 1 \leq |t| \leq 5 \times 10^5
  • s and t consist of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s
t

Output

If the number of non-negative integers i satisfying the following condition is finite, print the maximum value of such i; if the number is infinite, print -1.


Sample Input 1

abcabab
ab

Sample Output 1

3

The concatenation of three copies of t, ababab, is a substring of the concatenation of two copies of s, abcabababcabab, so i = 3 satisfies the condition.

On the other hand, the concatenation of four copies of t, abababab, is not a substring of the concatenation of any number of copies of s, so i = 4 does not satisfy the condition.

Similarly, any integer greater than 4 does not satisfy the condition, either. Thus, the number of non-negative integers i satisfying the condition is finite, and the maximum value of such i is 3.


Sample Input 2

aa
aaaaaaa

Sample Output 2

-1

For any non-negative integer i, the concatenation of i copies of t is a substring of the concatenation of 4i copies of s. Thus, there are infinitely many non-negative integers i that satisfy the condition.


Sample Input 3

aba
baaab

Sample Output 3

0

As stated in Notes, i = 0 always satisfies the condition.