#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
int k, j, ans;
string s1, s2;
vector<int> pos[305];
signed main()
{
cin >> s1 >> s2;
for(int i = 0; i <= s1.size() - 1; i++) pos[s1[i]].push_back(i);
for(int i = 0; i <= s2.size() - 1; i++)
if(pos[s2[i]].empty())
{
k = i;
break;
}
if(k < s2.size()) cout << -1 << endl;
else
{
for(int i = 'a'; i <= 'z'; i++)
pos[i].push_back(s1.size() + 1);
for(int i = 0; i <= s2.size() - 1;)
{
ans++, j = *upper_bound(pos[s2[i]].begin(), pos[s2[i]].end(), -1);
while(j < s1.size())
{
i++;
if(i < s2.size()) j = *upper_bound(pos[s2[i]].begin(), pos[s2[i]].end(), j);
else break;
}
}
cout << ans << endl;
}
return 0;
}
