Problem:
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.

Solution in C++14 (GCC 5.4.1) (judge verdict: Runtime Error)

/*********************
*  Author: xuziyuan  * 
*********************/
 
#include <bits/stdc++.h>
 
#define rep(i,n) for(int i=0;i<n;i++)
#define repn(i,n) for(int i=1;i<=n;i++)
#define LL long long
#define pii pair <int,int>
#define pb push_back
#define fi first
#define se second
#define mpr make_pair
#define sqr(a) ((a)*(a))
 
using namespace std;
 
const LL MOD=1e9+7;
 
string s,ss,t;
LL h[4000010],pw[4000010],hn=9839183,ht[1000010],res[1000010],ans=0;
 
LL gethash(LL a,LL b)
{
	return (h[b+1]-h[a]*pw[b-a+1]%MOD+MOD)%MOD;
}
 
LL gethash2(LL a,LL b)
{
	return (ht[b+1]-ht[a]*pw[b-a+1]%MOD+MOD)%MOD;
}
 
int main()
{
	pw[0]=1;
	repn(i,4000005) pw[i]=pw[i-1]*hn%MOD;
	cin>>s>>t;
	ss=s;
	s+=s;
	s+=s;
	repn(i,s.size()) h[i]=(h[i-1]*hn+s[i-1]-'a')%MOD;
	repn(i,t.size()) ht[i]=(ht[i-1]*hn+t[i-1]-'a')%MOD;
	rep(i,s.size())
	{
		if(i+t.size()-1>=s.size()) break;
		if(gethash(i,min(i+(LL)t.size()-1,(LL)s.size()-1))!=
		gethash2(0,min(i+(LL)t.size()-1,(LL)s.size()-1)-i)) continue;
		if(i-t.size()<0) res[i]=1;
		else res[i]=res[i-t.size()]+1;
		if(res[i]*t.size()>floor(ss.size()*2.5))
		{
			puts("-1");
			return 0;
		}
		ans=max(ans,res[i]);
	}
	cout<<ans<<endl;
	return 0;
}