#include<bits/stdc++.h>
using namespace std;
#define N 16000005
#define LL long long
#define MOD 998244353

string s,t;
int ans;
LL po[N];
LL has[N],hat[N];
int ok[N];
inline LL get_has(int x)
{
	if(x+t.size()-1>=s.size()) return -1;
	LL ret=has[x+t.size()-1]-has[x-1]*po[t.size()]%MOD;
	if(ret<0) ret+=MOD;
	return ret;
}

int main()
{
	
	cin>>s>>t;
	while(s.size()<t.size()*2) s=s+s;
	s=s+s;
	s=s+s;
	s=s+s;
	po[0]=1;
	for(int i=1;i<N;i++)
		po[i]=po[i-1]*29%MOD; 
	has[0]=s[0]-'a'+1;
	for(int i=1;i<s.size();i++)
		has[i]=(has[i-1]*29+s[i]-'a'+1)%MOD;
	hat[0]=t[0]-'a'+1;
	for(int i=1;i<t.size();i++)
		hat[i]=(hat[i-1]*29+t[i]-'a'+1)%MOD;
	for(int i=0;i<s.size();i++)
		ok[i]=(hat[t.size()-1]==get_has(i));
	for(int i=s.size();i>=0;i--)
		if(i+t.size()<N && ok[i]) ok[i]+=ok[i+t.size()];
	for(int i=0;i<s.size();i++)
		ans=max(ans,ok[i]);
	if(ans+1>=s.size()/t.size()) cout<<-1<<'\n';
	else cout<<ans<<'\n';
	
	return 0;
}