#include <bits/stdc++.h>
using namespace std;
int main() {
string s, p;
cin >> s;
cin >> p;
int n = s.size(), m = p.size();
auto same = [&](char a, char b) {
return b == '.' || a == b;
};
vector<char> prev(m + 1, 0), cur(m + 1, 0);
prev[0] = 1; // 空串匹配空模式
for (int j = 2; j <= m; ++j) // 处理 a*, a*b*, ...
if (p[j - 1] == '*') prev[j] = prev[j - 2];
for (int i = 1; i <= n; ++i) {
fill(cur.begin(), cur.end(), 0);
for (int j = 1; j <= m; ++j) {
if (p[j - 1] != '*') {
cur[j] = prev[j - 1] && same(s[i - 1], p[j - 1]);
} else { // '*':匹配0次 或 多次
cur[j] = cur[j - 2] || ( same(s[i - 1], p[j - 2]) && prev[j] );
}
}
swap(prev, cur);
}
cout << (prev[m] ? "true" : "false") << '\n';
return 0;
}