#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")