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

int main() {
    string s,p;
    cin>>s>>p;
    int m = s.size(), n = p.size();
    vector<vector<bool>> dp(m + 1, vector<bool>(n + 1, false));
    dp[0][0] = true;

    // 处理前导 *
    for (int i = 1; i <= m; ++i) {
        if (s[i - 1] == '*')
            dp[i][0] = dp[i - 1][0];
        else
            break;
    }

    for (int i = 1; i <= m; ++i) {
        for (int j = 1; j <= n; ++j) {
            char sc = s[i - 1];
            char pc = p[j - 1];

            if (sc == '*') {
                // 匹配0个字符(dp[i-1][j]),或者匹配一个字符(dp[i][j-1])
                dp[i][j] = dp[i - 1][j] || dp[i][j - 1];
            } else if (sc == '?' && isalnum(pc)) {
                dp[i][j] = dp[i - 1][j - 1];
            } else if (tolower(sc) == tolower(pc)) {
                dp[i][j] = dp[i - 1][j - 1];
            }
        }
    }

    cout<<boolalpha<<dp[m][n];
}
// 64 位输出请用 printf("%lld")