#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

string t;

long string_length(long now_depth){
    if(now_depth){
        return (t.size() + 1) * string_length(now_depth - 1) + t.size();
    }else{
        return 0;
    }
}

string create_string(long now_depth){
    if(now_depth){
        string ans = "";
        string next_depth_string = create_string(now_depth - 1);
        for(int i = 0; i < t.size(); i++){
            ans += next_depth_string;
            ans.push_back(t[i]);
        }
        return ans + next_depth_string;
    }else{
        return "";
    }
}

int main(){
    string s;
    cin >> s >> t;
    for(int i = 1; true; i++){
        if(string_length(i) > s.size()){
            cout << i - 1 << endl;
            return 0;
        }
        string this_string = create_string(i);
        int this_string_pointer = 0;
        for(int j = 0; j < s.size() && this_string_pointer < this_string.size(); j++){
            if(this_string[this_string_pointer] == s[j]){
                this_string_pointer++;
            }
        }
        if(this_string_pointer < this_string.size()){
            cout << i - 1 << endl;
            return 0;
        }
    }
}

