#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <regex>
using namespace std;
const int N = 2 * 1e5 + 5;
char z[N], p[N];
string a, b;
int main()
{
scanf("%*d %*d");
cin >> z >> p;
a = z, b = p;
int place = a.find("*");
if (a.length() - 1 > b.length())
{
cout << "NO\n";
return 0;
}
if (a == b)
{
cout << "YES\n";
return 0;
}
if (a.length() - b.length() == 1)
{
if (place == string::npos)
{
cout << "NO\n";
return 0;
}
a.erase(place, 1);
/*cout << "a: " << a << endl;
cout << "b: " << b << endl;
*/
if (a != b)
{
cout << "NO\n";
}
else cout << "YES\n";
return 0;
}
if (a.length() == b.length())
{
if (place == string::npos && a != b)
{
cout << "NO\n";
return 0;
}
for (char x = 'a'; x <= 'z'; x++)
{
a[place] = x;
if (a == b)
{
cout << "YES\n";
return 0;
}
}
cout << "NO\n";
return 0;
}
if (place == string::npos && a != b)
{
cout << "NO\n";
return 0;
}
string sub_first = a.substr(0, place);
string sub_last = a.substr(place + 1, (a.length() - 1) - (place + 1) + 1);
string regs = "^" + sub_first + "[a-z]*" + sub_last + "$";
regex reg(regs);
if (regex_match(p, reg))
{
cout << "YES\n";
}
else cout << "NO\n";
return 0;
}
#59 RE