#include <bits/stdc++.h>
using namespace std;
int main( ) {
// your code goes here
string a,b;
cin >> a;
cin >> b;
unordered_map< char ,int > m1;
unordered_map< char ,int > m2;
for ( int i= 0 ; i< a.size ( ) ; i++ ) {
m1[ a[ i] ] ++ ;
}
for ( int i= 0 ; i< b.size ( ) ; i++ ) {
m2[ b[ i] ] ++ ;
}
int mini= 1e9 ;
for ( int i= 0 ; i< b.size ( ) ; i++ ) {
if ( m1.find ( b[ i] ) == m1.end ( ) ) {
cout << "0" ;
}
int value= m1[ b[ i] ] / m2[ b[ i] ] ;
mini= min( value,mini) ; //becuase we try to remove the each character from the given string that contain the target string characters so it must contain all the elements as well to we take minimum
}
if ( mini== 1e9 ) {
cout << "-1" ;
}
cout << mini;
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCiAgICAgc3RyaW5nIGEsYjsKICAgICBjaW4+PmE7CiAgICAgY2luPj5iOwogICAgdW5vcmRlcmVkX21hcDxjaGFyLGludD5tMTsKICAgIHVub3JkZXJlZF9tYXA8Y2hhcixpbnQ+bTI7CiAgICBmb3IoaW50IGk9MDtpPGEuc2l6ZSgpO2krKyl7CiAgICAJbTFbYVtpXV0rKzsKICAgIH0KICAgIGZvcihpbnQgaT0wO2k8Yi5zaXplKCk7aSsrKXsKICAgIAltMltiW2ldXSsrOwogICAgfQogICAgaW50IG1pbmk9MWU5OwogICAgZm9yKGludCBpPTA7aTxiLnNpemUoKTtpKyspewogICAgCWlmKG0xLmZpbmQoYltpXSk9PW0xLmVuZCgpKXsKICAgIAkJY291dDw8IjAiOwogICAgCX0KICAgIAlpbnQgdmFsdWU9bTFbYltpXV0vbTJbYltpXV07CiAgICAJbWluaT1taW4odmFsdWUsbWluaSk7ICAgLy9iZWN1YXNlIHdlIHRyeSB0byByZW1vdmUgdGhlIGVhY2ggY2hhcmFjdGVyIGZyb20gdGhlIGdpdmVuIHN0cmluZyB0aGF0IGNvbnRhaW4gdGhlIHRhcmdldCBzdHJpbmcgY2hhcmFjdGVycyBzbyBpdCBtdXN0IGNvbnRhaW4gYWxsIHRoZSBlbGVtZW50cyBhcyB3ZWxsIHRvIHdlIHRha2UgbWluaW11bQogCiAgICB9CiAgICBpZihtaW5pPT0xZTkpewogICAgCWNvdXQ8PCItMSI7CiAgICB9CiAgICBjb3V0PDxtaW5pOwogCiAKIAoJcmV0dXJuIDA7Cn0=