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

int main() {
    string s,p;
    cin>>s>>p;
    transform(s.begin(),s.end(),s.begin(),::tolower);
    transform(p.begin(),p.end(),p.begin(),::tolower);
    vector<vector<bool>> dp(s.size()+1,vector<bool>(p.size()+1,false));
    dp[0][0]=true;
    for(int i=1;i<=s.size();i++){
        if(s[i-1]=='*'&&dp[i-1][0])dp[i][0]=true;
    }
    for(int i=1;i<=s.size();i++){
        for(int j=1;j<=p.size();j++){
            if(s[i-1]=='*'){
                dp[i][j]=dp[i-1][j]||dp[i][j-1];
            }else if(s[i-1]=='?'){
                dp[i][j]=dp[i-1][j-1]&&isalnum(p[j-1]);
            }else{
                dp[i][j]=(s[i-1]==p[j-1])&&dp[i-1][j-1];
            }
        }
    }
    if(dp[s.size()][p.size()])cout<<"true";
    else cout<<"false";
}