//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;ll y1=sqrtl(temp-curr*curr);

        int ans;
        while(curr<y1)
        {
            ll y=(int)sqrt(temp-curr*curr);
            if(curr==y){ans=1;break;}
            if(abs(curr-y)==1){ans=0;break;}
            ++curr;
        }

        if(ans==1)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        int flag = 1;//1->U
        ll x=0;ll y=0;
        ll temp=d*d;
        temp/=(k*k);
        while(1)
        {
            if(flag)
            {
                ll y1=sqrtl(temp-x*x);
                if((x+y1)%2==1)++y;
                else ++x;
            }
            else
            {
                ll y1=sqrtl(temp-x*x);
                if((x+y1)%2==0)++y;
                else ++x;
            }
            if(x*x+y*y>temp)break;
            flag=1-flag;
        }

        if(flag==1)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;
        while((curr+1)*(curr+1)*2<temp)
        {
            ++curr;
        }
        if((curr*curr)+((curr+1)*(curr+1))<=temp)
        {
            cout<<"Ashish"<<endl;
        }
        else cout<<"Utkarsh"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;ll y1=sqrtl(temp-curr*curr);
        int ans;
        while(curr<y1)
        {
            ll y=sqrtl(temp-curr*curr);
            if(curr==y){ans=1;cout<<y<<" "<<curr<<endl;break;}
            if(abs(curr-y)==1){ans=0;cout<<y<<" "<<curr<<endl;break;}
            ++curr;
        }

        if(ans==1)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;ll y1=sqrtl(temp-curr*curr);
        int ans;
        while(curr<y1)
        {
            ll y=sqrtl(temp-curr*curr);
            if(curr==y){ans=1;break;}
            if(abs(curr-y)==1){ans=0;break;}
            ++curr;
        }

        if(ans==1)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        int flag = 1;//1->U
        ll x=0;ll y=0;
        ll temp=d*d;
        temp/=(k*k);
        while(x*x+y*y<=temp)
        {
            ll curr=x*x+y*y;
            if(2*x+1+curr>temp)++y;
            else if(2*y+1+curr>temp)++x;
            else if(flag)
            {
                ll y1=sqrtl(temp-x*x);
                if((x+y1)%2==1)++y;
                else ++x;
            }
            else
            {
                ll y1=sqrtl(temp-x*x);
                if((x+y1)%2==0)++y;
                else ++x;
            }
            flag=1-flag;
        }
        if(flag==0)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll ans=0;
        ll p = 0;
        ll x=0;
        ll y=0;

        bool turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else y+=k;

            turn = 1-turn;

            ans++;
            p=x*x+y*y;

            if(p>d*d)
                break;

        }

        if(ans%2)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll p = 0;
        ll x=0;
        ll y=0;

        bool turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else y+=k;

            turn = 1-turn;

            p=x*x+y*y;

            if(p>d*d)
                break;

        }

        if(turn%2)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll p = 0;
        ll x=0;
        ll y=0;

        bool turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else y+=k;

            turn = 1-turn;

            p=x*x+y*y;

            if(p>d*d)
                break;

        }

        if(turn)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll p = 0;
        ll x=0;
        ll y=0;

        ll turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else
                y+=k;

            turn ++;

            p=x*x+y*y;

            if(p>d*d)
                break;

        }

        if(turn%2)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll p = 0;
        ll x=0;
        ll y=0;

        bool turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else
                y+=k;
            p=x*x+y*y;

            if(p>d*d)
                break;

            turn =1-turn;

        }

        if(turn%2==0)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include<bits/stdc++.h>
#define ll long long
using namespace std;
long long arr[1000007];
long long cs[1000007];
long long ps[1000007];

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        ll d,k;
        cin>>d>>k;

        ll ans=0;
        ll p = 0;
        ll x=0;
        ll y=0;

        bool turn =0;

        while(p<d*d)
        {
            if(turn%2==0)
                x+=k;
            else y+=k;

            turn = !turn;

            ans++;
            p=x*x+y*y;

            if(p>d*d)
                break;

        }

        if(ans%2)
        {
            cout<<"Utkarsh"<<endl;
        }

        else
            cout<<"Ashish"<<endl;
    }

    return 0;

}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t; cin >> t;
    while(t--){
        int n,k; cin >> n >> k;
        int x=0,y=0;
        int ans=0;
        while((x*x)+(y*y)<=(n*n)){
            if(x<y){
                x+=k;
            }else{
                y+=k;
            }
            ans++;
        }
        if(ans%2){
            cout << "Ashish\n";
        }else{
            cout << "Utkarsk\n";
        }
    }
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t; cin >> t;
    while(t--){
        int n,k; cin >> n >> k;
        int x=0,y=0;
        int ans=0;
        while((x*x)+(y*y)<=(n*n)){
            if(x<y){
                x+=k;
            }else{
                y+=k;
            }
            ans++;
        }
        if(ans%2==0){
            cout << "Ashish\n";
        }else{
            cout << "Utkarsk\n";
        }
    }
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t; cin >> t;
    while(t--){
        long long n,k; cin >> n >> k;
        long long x=0,y=0;
        int ans=0;
        int ch = 0;
        while((x*x)+(y*y)<=(n*n)){
            if(ch%2)x+=k;
            else y+=k;
            ans++,ch++;
        }
        if(ans%2==0){
            cout << "Ashish\n";
        }else{
            cout << "Utkarsh\n";
        }
    }
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t; cin >> t;
    while(t--){
        long long n,k; cin >> n >> k;
        long long x=0,y=0;
        int ans=0;
        while((x*x)+(y*y)<=(n*n)){
            if(x<y){
                x+=k;
            }else{
                y+=k;
            }
            ans++;
        }
        if(ans%2==0){
            cout << "Ashish\n";
        }else{
            cout << "Utkarsh\n";
        }
    }
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t; cin >> t;
    while(t--){
        int n,k; cin >> n >> k;
        int x=0,y=0;
        int ans=0;
        while((x*x)+(y*y)<=(n*n)){
            if(x<y){
                x+=k;
            }else{
                y+=k;
            }
            ans++;
        }
        if(ans%2==0){
            cout << "Ashish\n";
        }else{
            cout << "Utkarsh\n";
        }
    }
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int32_t main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k) + ( y * y ) <= d*d ) x += k;

           else if( x > y  && ( x*x ) + ( y + k )*( y + k ) <= d*d ) y += k;

           else break;
       }

       if( x == y ) cout << "Utkarsh\n";

       else cout << "Ashish\n";

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k) + ( y * y ) <= d*d ) x += k;

           else if( y >= x && ( x*x ) + ( y + k )*( y + k ) <= d*d ) y += k;

           else break;
       }

       cout << (x == y  ? "Ashish\n" : "Utkarsh\n");

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0;

       for( int x = d; x >= 0; --x ) {

           y = sqrt( d*d - x*x  );

           max_steps = max( x + y , max_steps );
       }

    //   cout << max_steps << '\n';

       int chance = max_steps / k;

       cout << (chance % 2 != 0 ? "Ashish\n" : "Utkarsh\n");

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       x = sqrt( (d*d) / 2 );

       y = x;

       max_steps = x + y;

    //   cout << max_steps << '\n';

       int chance = max_steps / k;

       cout << (chance % 2 != 0 ? "Ashish\n" : "Utkarsh\n");

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k) + ( y * y ) <= d*d ) x += k;

           else if( x > y  && ( x*x ) + ( y + k )*( y + k ) <= d*d ) y += k;

           else break;
       }

       cout << (x == y  ? "Ashish\n" : "Utkarsh\n");

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int32_t main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       ll d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       ll y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k)*1ll + ( y * y )*1ll <= d*d*1ll ) x += k;

           else if( x > y  && ( x*x )*1ll + ( y + k )*( y + k )*1ll <= d*d*1ll ) y += k;

           else break;
       }

       if( x == y ) cout << "Utkarsh\n";

       else cout << "Ashish\n";

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k) + ( y * y ) <= d*d ) x += k;

           else if( x > y  && ( x*x ) + ( y + k )*( y + k ) <= d*d ) y += k;

           else break;
       }

       if( x == y ) cout << "Utkarsh\n";

       else cout << "Ashish\n";

   }

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {

   int nt;

   cin >> nt;

   while( nt-- ) {

       int d , k;

       cin >> d >> k;

       int max_steps = INT_MIN;

       int y = 0 , x = 0;

       while( true ) {

           if( x <= y && ( x + k )*(x + k) + ( y * y ) <= d*d ) x += k;

           else if( x > y  && ( x*x ) + ( y + k )*( y + k ) <= d*d ) y += k;

           else break;
       }

       cout << (x != y  ? "Ashish\n" : "Utkarsh\n");

   }

	return 0;
}


#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define yo cout<<"i got here\n";
using namespace std;
const int mod = 1e9+7,siz = 1e6+5;
int t,d,n,m,k,a[siz];
bool is_ok(int mid)
{
    return ((mid*mid+mid*mid)<=d*d);
}
int32_t main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin>>t;
    while(t--)
    {
        cin>>d>>k;
        int moves;
        int l = 0,r = d/k;
        while(l<=r) /// binary search over number of moves
        {
            int mid = l+(r-l)/2;
            if(is_ok(k*mid))
            {
                moves = mid; l = mid+1;
            }
            else r = mid-1;
        }
        /// up
        int x = moves*k+k;
        int y = moves*k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        x = moves*k;
        y = moves*k+k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        cout<<"Utkarsh\n";
    }

}


#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define yo cout<<"i got here\n";
using namespace std;
const int mod = 1e9+7,siz = 1e6+5;
int t,d,n,m,k,a[siz];
bool is_ok(int mid)
{
    return (mid*mid+mid*mid)<=d*d;
}
int32_t main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin>>t;
    while(t--)
    {
        cin>>d>>k;
        int moves;
        int l = 0,r = d;
        int xx = sqrt(d*d/2);
        moves = xx/k;
        /*
        while(l<=r)
        {
            int mid = l+(r-l)/2;
            if(is_ok(k*mid))
            {
                moves = mid; l = mid+1;
            }
            else r = mid-1;
        }
        */
        /// up
        int x = moves*k+k;
        int y = moves*k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        x = moves*k;
        y = moves*k+k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        cout<<"Utkarsh\n";
    }

}


#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define yo cout<<"i got here\n";
using namespace std;
const int mod = 1e9+7,siz = 1e6+5;
int t,d,n,m,k,a[siz];
bool is_ok(int mid)
{
    return ((mid*mid+mid*mid)<=d*d);
}
int32_t main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin>>t;
    while(t--)
    {
        cin>>d>>k;
        int moves;
        int l = 0,r = d;
        while(l<=r) /// binary search over number of moves
        {
            int mid = l+(r-l)/2;
            if(is_ok(k*mid))
            {
                moves = mid; l = mid+1;
            }
            else r = mid-1;
        }
        /// up
        int x = moves*k+k;
        int y = moves*k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        x = moves*k;
        y = moves*k+k;
        if(x*x+y*y<=d*d)
        {
            cout<<"Ashish\n"; continue;
        }
        cout<<"Utkarsh\n";
    }

}


#include <bits/stdc++.h>
#define all(v)  v.begin() , v.end()
using namespace std;
typedef long long ll;

string s, t;
int n;

int main() {
    cin >> n;
    stringstream ss;
    for(int i = 0; i < n; ++i) {
        cin >> s;
        ss << "<3" << s;
    }
    s = ss.str()+"<3";
    cin >> t;
    int j = 0;
    for(int i = 0; i < t.size(); ++i) {
        if(j >= s.size())break;

        if(s[j] == t[i])j++;
    }

    puts(j >= s.size() ? "yes" : "no");

    return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std;
#define M 100000 + 10
string str[M];
string tem[M];
bool mark[330];
int main()
{
    int n ;
    string s;

    while(scanf("%d",&n) != EOF)
    {
        for(int i = 1 ;i <= n; ++ i)
            cin>>str[i];
        cin>>s;
        int len = s.size();
        for(int i = 1 ;i <= n; ++i)
        {
           str[i] ='3' + str[i];
        }
        ++ n;
        str[n] = "3";
        int cnt = 0;
        int flag = 1;
        for(int i = 0 ;i < len; ++ i)
        {
            if(0 == i || (s[i - 1] != '<' && s[i] == '<'))
            {
                ++ cnt;
            }
            else tem[cnt] += s[i];
        }
        if(cnt != n) flag = 0;
        else
        {
            int num = 0;
            //for(int i = 1 ;i <= cnt ; ++i) cout<<str[i]<<endl;
            for(int i = 1 ;i <= cnt; ++ i)
            {
                num = 0;
                for(int j = 0 ;j < tem[i].size(); ++ j)
                {
                    if(num < str[i].size() && tem[i][j] == str[i][num]) ++ num;
                }
                if(num != str[i].size())
                {
                    flag = 0;
                    break;
                }
            }
        }
        if(flag) puts("yes");
        else puts("no");

    }
    return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std;
#define M 100000 + 10
string str[M];
string tem[M];
bool mark[330];
int main()
{
    int n ;
    string s,t;

    while(scanf("%d",&n) != EOF)
    {
        for(int i = 1 ;i <= n; ++ i)
            cin>>str[i];
        cin>>s;
        int len = s.size();
        for(int i = 1 ;i <= n; ++i)
        {
            t +="<3";
            t += str[i];
        }
        t +="<3";
        int lent = t.size();
        int num = 0;
        for(int i = 0 ;i < len ; ++ i)
        {
            if(num < lent && s[i] == t[num]) ++ num;
        }
        if(num == lent) puts("yes");
        else puts("no");
    }
    return 0;
}


#include <cstdio>
#include <cmath>
#include <cstdlib>
#include  <memory.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <utility>
#include <tuple>
#include <stack>
#include <queue>
#include <vector>

using namespace std ;

typedef long long ll ;

const int MAXN = 100005;
int n ;
string  word[MAXN] ;
string encode;
string decode;
string en_left;
int main(){
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        cin >> word[i];
    }
    cin >> encode;

    for(int i=0,j=0;i<n;i++){
        decode += "<3" + word[i];
    }
    decode += "<3";

    // cout << encode  << endl ;
    // cout << decode << endl ;
    int len_encode = encode.size();
    int len_decode = decode.size();
    int i =0 ,j =0 ;
    for(;i<len_encode && j<len_decode;){
        if(encode[i] != decode[j]){
            en_left.push_back(encode[i]);
            i++;
        }
        else{
            i++,j++;
        }
    }
    // cout << j <<" " << len_decode<< endl;
    // cout << en_left << endl;

    if(j == len_decode ) {
        int len = en_left.size();
        int sucess =1;
        for(int i=0;i<len;i++){
            if(en_left[i] >='a' && en_left[i] <='z' )
                continue;
            if(en_left[i] >='0' && en_left[i] <='9')
                continue;
            if(en_left[i] == '<' && en_left[i] =='>')
                continue;
            sucess =0 ;
            break;
        }
        if(sucess ) {
            printf("yes\n");
        }
        else
            printf("no\n");
    }
    else {
        printf("no\n");
    }

    return 0;
}


#include <cstdio>
#include <cmath>
#include <cstdlib>
#include  <memory.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <utility>
#include <tuple>
#include <stack>
#include <queue>
#include <vector>

using namespace std ;

typedef long long ll ;

const int MAXN = 100005;
int n ;
string  word[MAXN] ;
string encode;
string decode;
string en_left;
int main(){
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        cin >> word[i];
    }
    cin >> encode;

    for(int i=0,j=0;i<n;i++){
        decode += "<3" + word[i];
    }
    decode += "<3";

    // cout << encode  << endl ;
    // cout << decode << endl ;
    int len_encode = encode.size();
    int len_decode = decode.size();
    int i =0 ,j =0 ;
    for(;i<len_encode && j<len_decode;){
        if(encode[i] != decode[j]){
            en_left.push_back(encode[i]);
            i++;
        }
        else{
            i++,j++;
        }
    }

    for(;i<len_encode;i++){
        en_left.push_back(encode[i]);
    }

    // cout << j <<" " << len_decode<< endl;
    // cout << en_left << endl;

    if(j == len_decode ) {
        int len = en_left.size();
        int sucess =1;
        for(int i=0;i<len;i++){
            if(en_left[i] >='a' && en_left[i] <='z' )
                continue;
            if(en_left[i] >='0' && en_left[i] <='9')
                continue;
            if(en_left[i] == '<' && en_left[i] =='>')
                continue;
            sucess =0 ;
            break;
        }
        if(sucess ) {
            printf("yes\n");
        }
        else
            printf("no\n");
    }
    else {
        printf("no\n");
    }

    return 0;
}


#include <cstdio>
#include <cmath>
#include <cstdlib>
#include  <memory.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <utility>
#include <tuple>
#include <stack>
#include <queue>
#include <vector>

using namespace std ;

typedef long long ll ;

const int MAXN = 100005;
int n ;
string  word[MAXN] ;
string encode;
string decode;
string en_left;
int main(){
    scanf("%d",&n);

    for(int i=0;i<n;i++){
        cin >> word[i];
    }
    cin >> encode;

    for(int i=0,j=0;i<n;i++){
        decode += "<3" + word[i];
    }
    decode += "<3";

    // cout << encode  << endl ;
    // cout << decode << endl ;
    int len_encode = encode.size();
    int len_decode = decode.size();
    int i =0 ,j =0 ;
    for(;i<len_encode && j<len_decode;){
        if(encode[i] != decode[j]){
            en_left.push_back(encode[i]);
            i++;
        }
        else{
            i++,j++;
        }
    }

    for(;i<len_encode;i++){
        en_left.push_back(encode[i]);
    }

    // cout << j <<" " << len_decode<< endl;
    // cout << en_left << endl;

    if(j == len_decode ) {
        int len = en_left.size();
        int sucess =1;
        for(int i=0;i<len;i++){
            if(en_left[i] >='a' && en_left[i] <='z' )
                continue;
            if(en_left[i] >='0' && en_left[i] <='9')
                continue;
            if(en_left[i] == '<' || en_left[i] =='>')
                continue;
            sucess =0 ;
            break;
        }
        if(sucess ) {
            printf("yes\n");
        }
        else
            printf("no\n");
    }
    else {
        printf("no\n");
    }

    return 0;
}


#include <iostream>
#include <vector>

#define long long long
#define sz(A) (int(A.size()))

using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(NULL);

    int n;
    cin >> n;
    string patt = "<3";

    for (int i = 0; i < n; i++)
    {
        string s;
        cin >> s;
        patt += s;
        patt += "<3";
    }
    string sour;
    cin >> sour;
    int ptr = 0;

    for (int i = 0; i < sz(sour); i++)
        if (ptr < sz(patt) && patt[ptr] == sour[i])
            ptr++;

    if (ptr == sz(patt))
        cout << "yes\n";
    else
        cout << "no\n";
    return 0;
}


#define _USE_MATH_DEFINES
#define _CRT_SECURE_NO_DEPRECATE

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
#include <cfloat>
#include <ctime>
#include <cassert>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <numeric>
#include <list>
#include <iomanip>
#include <fstream>
#include <iterator>

using namespace std;
const int MOD = 1000000007; // check!!!
const int INF = 100000000; //1e8

typedef long long ll;
typedef pair<int,int> Pii;
typedef pair<ll,ll> Pll;

#define FOR(i,n) for(int i = 0; i < (n); i++)
#define sz(c) ((int)(c).size())
#define ten(x) ((int)1e##x)
#define tenll(x) ((ll)1e##x)

int fastMin(int x, int y) { return (((y-x)>>(32-1))&(x^y))^x; }
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }

template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }

int main(){
	int n; cin>>n;
	string s;
	FOR(i,n){
		string buf;
		cin>>buf;
		s += "<3";
		s += buf;
	}

	string t; cin>>t;

	int cur = 0;
	FOR(i,sz(t)){
		if(cur < sz(s) && s[cur] == t[i])
			cur++;
	}

	puts(cur == sz(s) ? "yes" : "no");

	return 0;
}


#define _USE_MATH_DEFINES
#define _CRT_SECURE_NO_DEPRECATE

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
#include <cfloat>
#include <ctime>
#include <cassert>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <numeric>
#include <list>
#include <iomanip>
#include <fstream>
#include <iterator>

using namespace std;
const int MOD = 1000000007; // check!!!
const int INF = 100000000; //1e8

typedef long long ll;
typedef pair<int,int> Pii;
typedef pair<ll,ll> Pll;

#define FOR(i,n) for(int i = 0; i < (n); i++)
#define sz(c) ((int)(c).size())
#define ten(x) ((int)1e##x)
#define tenll(x) ((ll)1e##x)

int fastMin(int x, int y) { return (((y-x)>>(32-1))&(x^y))^x; }
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }

template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }

int main(){
	int n; cin>>n;
	string s;
	FOR(i,n){
		string buf;
		cin>>buf;
		s += "<3";
		s += buf;
	}
	s += "<3";

	string t; cin>>t;

	int cur = 0;
	FOR(i,sz(t)){
		if(cur < sz(s) && s[cur] == t[i])
			cur++;
	}

	puts(cur == sz(s) ? "yes" : "no");

	return 0;
}


#ifndef ONLINE_JUDGE
#include "/Users/roman/Dev/SharedCpp/DebugOutput.h"
// #include "/Users/roman/Dev/SharedCpp/Hash.h"
// #include "/Users/roman/Dev/SharedCpp/KMP.h"
// #include "/Users/roman/Dev/SharedCpp/ConvexHull.h"
// #include "/Users/roman/Dev/SharedCpp/FFT.h"
// #include "/Users/roman/Dev/SharedCpp/MinCostMaxFlow.h"
// #include "/Users/roman/Dev/SharedCpp/Tarjan.h"
// #include "/Users/roman/Dev/SharedCpp/Hungarian.h"
#endif
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <iostream>
#include <cmath>
#include <sstream>
#include <map>
#include <set>
#include <stack>
#include <cstring>
#include <ctime>
#include <cstdio>
#include <memory>
#include <cassert>
#include <bitset>
using namespace std;
#define pb push_back
#define INF 1000000000
#define L(s) (int)(s.size())
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define FORD(i, a, b) for(int i = (a); i >= (b); i--)
#define rep(i, n) FOR(i, 1, (n))
#define rept(i, n) FOR(i, 0, int(n) - 1)
#define C(a) memset((a), 0, sizeof(a))
#define ll long long
#define all(c) (c).begin(), (c).end()
#define SORT(c) sort(all(c))
#define VI vector<int>
#define ppb pop_back
#define mp make_pair
#define pii pair<int, int>
#define pdd pair<double, double>
//#define x first
//#define y second
#define sqr(a) (a)*(a)
#define D(a,b) sqrt(((a).x-(b).x)*((a).x-(b).x)+((a).y-(b).y)*((a).y-(b).y))
#define pi 3.1415926535897932384626433832795028841971
//#define tt (lx + rx) / 2
#define UN(v) sort((v).begin(),(v).end()),v.erase(unique(v.begin(),v.end()),v.end())
#define rnd() ((rand() << 16) ^ rand())

const int N = 1000000;

char s[N], tmp[N], p[N];

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt","rt",stdin);
    //freopen("output.txt","wt",stdout);
    #endif
    int n;
    scanf("%d", &n);

    int l = 0;
	s[l++] = '<';
	s[l++] = '3';

    rept(i, n) {
    	scanf("%s", tmp);
    	int m = strlen(tmp);
    	rept(j, m)
    		s[l++] = tmp[j];
    	s[l++] = '<';
    	s[l++] = '3';
    }
    s[l] = 0;
    scanf("%s", p);

    swap(s, p);

    int c = 0, k = strlen(p);
    l = strlen(s);

    rept(i, l) {
    	if (c == k) break;
    	if (s[i] == p[c]) {
    		c++;
    	}
    }
    if (c == k) cout << "yes" << endl;
    else        cout << "no" << endl;
	return 0;
}


#ifndef ONLINE_JUDGE
#include "/Users/roman/Dev/SharedCpp/DebugOutput.h"
// #include "/Users/roman/Dev/SharedCpp/Hash.h"
// #include "/Users/roman/Dev/SharedCpp/KMP.h"
// #include "/Users/roman/Dev/SharedCpp/ConvexHull.h"
// #include "/Users/roman/Dev/SharedCpp/FFT.h"
// #include "/Users/roman/Dev/SharedCpp/MinCostMaxFlow.h"
// #include "/Users/roman/Dev/SharedCpp/Tarjan.h"
// #include "/Users/roman/Dev/SharedCpp/Hungarian.h"
#endif
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <iostream>
#include <cmath>
#include <sstream>
#include <map>
#include <set>
#include <stack>
#include <cstring>
#include <ctime>
#include <cstdio>
#include <memory>
#include <cassert>
#include <bitset>
using namespace std;
#define pb push_back
#define INF 1000000000
#define L(s) (int)(s.size())
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define FORD(i, a, b) for(int i = (a); i >= (b); i--)
#define rep(i, n) FOR(i, 1, (n))
#define rept(i, n) FOR(i, 0, int(n) - 1)
#define C(a) memset((a), 0, sizeof(a))
#define ll long long
#define all(c) (c).begin(), (c).end()
#define SORT(c) sort(all(c))
#define VI vector<int>
#define ppb pop_back
#define mp make_pair
#define pii pair<int, int>
#define pdd pair<double, double>
//#define x first
//#define y second
#define sqr(a) (a)*(a)
#define D(a,b) sqrt(((a).x-(b).x)*((a).x-(b).x)+((a).y-(b).y)*((a).y-(b).y))
#define pi 3.1415926535897932384626433832795028841971
//#define tt (lx + rx) / 2
#define UN(v) sort((v).begin(),(v).end()),v.erase(unique(v.begin(),v.end()),v.end())
#define rnd() ((rand() << 16) ^ rand())

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt","rt",stdin);
    //freopen("output.txt","wt",stdout);
    #endif
	return 0;
}


#include <iostream>
#include <algorithm>
#include <list>
#include <map>
#include <vector>
#include <set>
#include <bitset>
#include <iostream>

#define FOR(i, n) for(long i = 0; i < (n); ++i)
#define FORU(i, j, k) for(long i = (j); i <= (k); ++i)
#define FORD(i, j, k) for(long i = (j); i >= (k); --i)

using namespace std;

int main(int, char**){
  long n; cin >> n;
  list<string> phr;
  FOR(i, n){
    string s;
    cin >> s;
    phr.insert(phr.end(), s + "<3");
  }
  std::string str; cin >> str;
  unsigned pos = 0;
  unsigned siz = str.size();
  for(auto const& wo: phr){
    for(char c : wo){
      while(pos != siz && str[pos] != c){
        pos++;
      }
    }
  }
  if(pos == siz){
    cout << "no" << endl;
  }else{
    cout << "yes" << endl;
  }
  return 0;
}


#include <iostream>
#include <algorithm>
#include <list>
#include <map>
#include <vector>
#include <set>
#include <bitset>
#include <iostream>

#define FOR(i, n) for(long i = 0; i < (n); ++i)
#define FORU(i, j, k) for(long i = (j); i <= (k); ++i)
#define FORD(i, j, k) for(long i = (j); i >= (k); --i)

using namespace std;

int main(int, char**){
  long n; cin >> n;
  std::string msg = "<3";
  FOR(i, n){
    string s;
    cin >> s;
    msg += s + "<3";
  }
  std::string str; cin >> str;
  str += "\n";
  unsigned pos = 0;
  unsigned siz = str.size();
  for(char c : msg){
    while(pos != siz && str[pos] != c){
      pos++;
    }
    if(pos == siz){
      cout << "no" << endl;
      return 0;
    }
    pos++;
  }
  cout << "yes" << endl;
  return 0;
}


#include <iostream>
#include <algorithm>
#include <list>
#include <map>
#include <vector>
#include <set>
#include <bitset>
#include <iostream>

#define FOR(i, n) for(long i = 0; i < (n); ++i)
#define FORU(i, j, k) for(long i = (j); i <= (k); ++i)
#define FORD(i, j, k) for(long i = (j); i >= (k); --i)

using namespace std;

int main(int, char**){
  long n; cin >> n;
  std::string msg;
  FOR(i, n){
    string s;
    cin >> s;
    msg += s + "<3";
  }
  std::string str; cin >> str;
  str += "\n";
  unsigned pos = 0;
  unsigned siz = str.size();
  for(char c : msg){
    while(pos != siz && str[pos] != c){
      pos++;
    }
    if(pos == siz){
      cout << "no" << endl;
      return 0;
    }
    pos++;
  }
  cout << "yes" << endl;
  return 0;
}


#include <iostream>
#include <algorithm>
#include <list>
#include <map>
#include <vector>
#include <set>
#include <bitset>
#include <iostream>

#define FOR(i, n) for(long i = 0; i < (n); ++i)
#define FORU(i, j, k) for(long i = (j); i <= (k); ++i)
#define FORD(i, j, k) for(long i = (j); i >= (k); --i)

using namespace std;

int main(int, char**){
  long n; cin >> n;
  std::string msg;
  FOR(i, n){
    string s;
    cin >> s;
    msg += s + "<3";
  }
  std::string str; cin >> str;
  str += "\n";
  unsigned pos = 0;
  unsigned siz = str.size();
  for(char c : msg){
    while(pos != siz && str[pos] != c){
      pos++;
    }
    if(pos == siz){
      cout << "no" << endl;
      return 0;
    }
    pos++;
  }
  if(pos == siz){
    cout << "no" << endl;
  }else{
    cout << "yes" << endl;
  }
  return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;

const int  MOD=1000000007;
const int  INF= int(1e9);

int main()
{
    ios_base::sync_with_stdio(false);
    int n;
    cin>>n;

    string original="<3";
    for(int i=0;i<n;i++) {
        string t;
        cin>>t;
        original+=(t+"<3");
    }
    string message;
    cin>>message;
    int i=0,j=0;
    for(;j<(int)message.size();j++) {
        if(message[j]==original[i]){
            i++;
        }

    }
    if(i==original.size()) {
        cout<<"yes";
    } else {
        cout<<"no";
    }

    return 0;

}


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

int main() {
  int n;
  cin >> n;
  string text = "";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t;
  }
  string str;
  cin >> str;
  int p = 0;
  bool ok = true;
  string t = "";
  for (int i = 0; i < str.size(); i++) {
    while (str[i] != '<' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
    while (str[i] != '3' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
  }

  if (text == t) {
    cout << "yes" << endl;
  }else {
    cout << "no" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text[n];
  for (int i = 0; i < n; i++) {
    cin >> text[i];
  }
  string str;
  cin >> str;
  int p = 0;
  bool ok = true;
  for (int i = 0; i < str.size(); i++) {
    string t = "";
    while (str[i] != '<' && i < str.size()) i++;
    while (str[i] != '3' && i < str.size()) i++;
    i++;
    while (str[i] != '<' && i < str.size()) {
      t += str[i];
      i++;
    }
    if (i == str.size()) break;
    i--;
    if (t != text[p]) {
      ok = false;
      break;
    }
    p++;
  }

  if (ok) {
    cout << "yes" << endl;
  }else {
    cout << "no" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text = "<3";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t;
  }
  text += "<3";
  string str;
  cin >> str;
  int p = 0;
  string t = "";
  for (int i = 0; i < str.size(); i++) {
    while (p < text.size() && text[p] == str[i]) p++;
  }

  if (p < text.size()) {
    cout << "no" << endl;
  }else {
    cout << "yes" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text = "<3";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t;
  }
  text += "<3";
  string str;
  cin >> str;
  int p = 0;
  string t = "";
  for (int i = 0; i < str.size(); i++) {
    if (p < text.size() && text[p] == str[i]) p++;
  }

  if (p < text.size()) {
    cout << "no" << endl;
  }else {
    cout << "yes" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text = "";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t;
  }
  string str;
  cin >> str;
  int p = 0;
  string t = "";
  int cnt = 0;
  for (int i = 0; i < str.size(); i++) {
    while (str[i] != '<' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
    if (i < str.size() && str[i] == '<') cnt++;
    while (str[i] != '3' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
    if (i < str.size() && str[i] == '3') cnt++;
  }

  if (text == t && cnt%2 == 0 && str[str.size()-1] == '3' && str[0] == '<') {
    cout << "yes" << endl;
  }else {
    cout << "no" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text = "";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t;
  }
  string str;
  cin >> str;
  int p = 0;
  string t = "";
  int cnt = 0;
  for (int i = 0; i < str.size(); i++) {
    while (str[i] != '<' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
    if (i < str.size() && str[i] == '<') cnt++;
    while (str[i] != '3' && i < str.size()) {
      if ('a' <= str[i] && str[i] <= 'z') t += str[i];
      i++;
    }
    if (i < str.size() && str[i] == '3') cnt++;
  }

  if (text == t && cnt%2 == 0 && str[str.size()-1] == '3') {
    cout << "yes" << endl;
  }else {
    cout << "no" << endl;
  }
}


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

int main() {
  int n;
  cin >> n;
  string text = "<3";
  for (int i = 0; i < n; i++) {
    string t;
    cin >> t;
    text += t+"<3";
  }
  string str;
  cin >> str;
  int p = 0;
  string t = "";
  for (int i = 0; i < str.size(); i++) {
    if (p < text.size() && text[p] == str[i]) p++;
  }

  if (p < text.size()) {
    cout << "no" << endl;
  }else {
    cout << "yes" << endl;
  }
}


# include <cstdio>
# include <cstring>
# include <cmath>
# include <cstdlib>
# include <iostream>
# include <vector>
# include <algorithm>
# include <queue>
# include <set>
# include <map>
using namespace std;

int main(){
	int n;
	string formed="<3";
	scanf("%d",&n);
	string part,final;
	for(int i=0;i<n;i++){
		cin>>part;
		formed=formed+part+"<3";
	}
	cin>>final;
	//cout<<formed<<endl;
	int L = formed.length(),N=final.length();
	int i,j;
	for(i=0,j=0;i<L && j<N;j++){
		if(formed[i]==final[j]) i++;
	}
	if(i==L) printf("yes\n");
	else printf("no\n");

	return 0;
}


#include <bits/stdc++.h>/*{{{*/
using namespace std;typedef long long ll;typedef long double ld;void run();int main(){ios::sync_with_stdio(0);run();}/*}}}*/

void run(){
  int n; cin>>n;
  string want="<3";
  for (int i=0; i<n; i++) {string s; cin>>s; want+=s+"<3";}
  string s; cin>>s;
  int x=0;
  for (auto i: s){
    if (x<want.size() and want[x]==i) ++x;
  }
  cout<<(x==want.size()?"yes":"no")<<endl;
}


#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;

typedef pair<int,int> PII;
typedef long long LL;
const int INF = 1000000007;

char s[100005];

int main(){
    int n;
    string text;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%s",s);
        text+="<3";
        text+=s;
    }
    text+="<3";
    size_t t=0;
    scanf("%s",s);
    for(int i=0;s[i];i++)
        if(t!=text.size() && s[i]==text[t]) t++;
    puts(t==text.size()?"yes":"no");
}


#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <sstream>
#include <utility>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cassert>
#include <bitset>
#include <list>
#include <memory.h>

using namespace std;

int n;
string s;
string b;
string a;

int main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> s;
    b += "<3" + s;
  }
  b += "<3";
  cin >> a;
  int asz = a.size();
  int bsz = b.size();
  int i = 0, j = 0;
  for(; i < asz && j < bsz; i++) {
    if(a[i] == b[j]) j++;
  }
  if(j == bsz) {
    cout << "YES\n";
  }
  else {
    cout << "NO\n";
  }
  return 0;
}


#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <sstream>
#include <utility>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cassert>
#include <bitset>
#include <list>
#include <memory.h>

using namespace std;

int n;
string s;
string b;
string a;

int main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> s;
    b += "<3" + s;
  }
  b += "<3";
  cin >> a;
  int asz = a.size();
  int bsz = b.size();
  int i = 0, j = 0;
  for(; i < asz && j < bsz; i++) {
    if(a[i] == b[j]) j++;
  }
  if(j == bsz) {
    cout << "yes\n";
  }
  else {
    cout << "no\n";
  }
  return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    int i,N,a,b,t;
    string d="",c,B,A[100005];
    cin>>N;
    for(i=1;i<=N;i++){
        cin>>A[i];
        d+="<3"+A[i];
    }
    d+="<3";
    cin>>B;
    a=B.size();
    int k=0,res=0;
    for(i=0;i<a;i++){
        if(B[i] == d [k] ) ++k;
    }
    if(k!= d.size()) cout<<"no";
    else cout<<"yes";
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";

string isCorrect(vector<string> words, string msg){
    string correctMsg = heart;
    for(auto word : words) correctMsg = word + heart;
    int i = 0 , j = 0 ;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        j++;
    }
    if(i == correctMsg.size()) return "yes";
    return "no";
}
int main() {
    int n;
    string msg;
    cin>>n;
    vector<string> words(n);
    for(int i = 0 ; i< n ;i++) cin>>words[i];
    cin>>msg;
    cout<<isCorrect(words,msg);
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";
char msg[100005];

string isEncodedCorrectly(const string& correctMsg, const string& msg){
    int i = 0 , j = 0;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        j++;
    }
    return (i == correctMsg.size()) ? "yes" : "no";
}
int main() {
    int n;
    scanf("%d",&n);
    string correctMsg = heart;
    for(int i = 0 ; i< n ;i++) { scanf("%s",msg); correctMsg = correctMsg + msg + heart; }
    scanf("%s",msg);
    cout<<isEncodedCorrectly(correctMsg,msg);
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";
char msg[100005];

string isCorrect(string correctMsg, string msg){
    int i = 0 , j = 0;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        j++;
    }
    if(i == correctMsg.size()) return "yes";
    return "no";
}
int main() {
    int n;
    scanf("%d",&n);
    string correctMsg = heart;
    for(int i = 0 ; i< n ;i++) { scanf("%s",msg); correctMsg = correctMsg + msg + heart; }
    scanf("%s",msg);
    cout<<isCorrect(correctMsg,msg);
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";

string isCorrect(vector<string> words, string msg){
    string correctMsg = heart;
    for(auto word : words) correctMsg = correctMsg + word + heart;
    int i = 0 , j = 0 ;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        j++;
    }
    if(i >= correctMsg.size()) return "yes";
    return "no";
}
int main() {
    int n;
    string msg;
    cin>>n;
    vector<string> words(n);
    for(int i = 0 ; i< n ;i++) cin>>words[i];
    cin>>msg;
    cout<<isCorrect(words,msg);
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";

string isCorrect(vector<string> words, string msg){
    string correctMsg = heart;
    for(auto word : words) correctMsg = word + heart;
    int i = 0 , j = 0 ;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        else {
            cout<<"sadas";
        }
        j++;
    }
    if(i == correctMsg.size()) return "yes";
    return "no";
}
int main() {
    int n;
    string msg;
    cin>>n;
    vector<string> words(n);
    for(int i = 0 ; i< n ;i++) cin>>words[i];
    cin>>msg;
    cout<<isCorrect(words,msg);
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

const string heart = "<3";
char msg[100005];

inline string isEncodedCorrectly(const string& correctMsg, const string& msg){
    int i = 0 , j = 0;
    while(i < correctMsg.size() && j < msg.size()){
        if(correctMsg[i] == msg[j]) i++;
        j++;
    }
    return (i == correctMsg.size()) ? "yes" : "no";
}
int main() {
    int n;
    scanf("%d",&n);
    string correctMsg = heart;
    for(int i = 0 ; i< n ;i++) { scanf("%s",msg); correctMsg+= msg; correctMsg+=heart; }
    scanf("%s",msg);
    cout<<isEncodedCorrectly(correctMsg,msg);
    return 0;
}


#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
ll ha=1238912311;
int main() {
    ll n;
    cin>>n;
    vector< string> v(2*n+1);
    v[0]="<3";
    for(ll i=0; i<n; ++i) {
        cin>>v[i*2+1];
        v[(i+1)*2]="<3";
    }
    string a;

    cin>>a;
    ll k=0;
    for(ll i=0; i<v.size(); ++i) {
        ll k2=0;
        for(;k2<v[i].size() && k<a.size();) {
            if(v[i][k2]==a[k]) {
                ++k2;
            }
            ++k;
        }
        if(k2!=v[i].size()) {
            cout<<"no\n";
            return 0;
        }
    }
    cout<<"yes\n";
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s,tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind<enc.size()) {
        if (enc[ind] == s[i]) i++;
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#include <iostream>
#include <list>
#include <string>
#include <queue>
using namespace std;
int main(){
    int n;
    while (cin >> n){
        string s, s1;
        while (n--){
            cin >> s1;
            s += "<3" + s1;
        }
        s += "<3";
        cin >> s1;
        int j = 0;
        for (int i = 0; i < s1.size(); i++){
            if (s[j] == s1[i]) j++;
        }
        if (j == s.size()) cout << "yes" << endl;
        else cout << "no" << endl;
    }
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s,tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind<enc.size()) {
        if (enc[ind] == s[i]) i++;
        if (i == s.size()) { ok = 1; break; }
        ind++;
    }
    if (ok) cout << "yes\n"; else cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s,tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind<enc.size()) {
        if (enc[ind] == s[i]) i++;
        if (i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#include <iostream>
#include <list>
#include <string>
#include <queue>
using namespace std;
int main(){
    int n;
    while (cin >> n){
        string s, s1;
        while (n--){
            cin >> s1;
            s += "<3" + s1;
        }
        s += "<3";
        cin >> s1;
        int j = 0;
        bool flag = 0;
        for (int i = 0; i < s1.size(); i++){
            if (s[j] == s1[i]) j++;
            else flag = 1;
        }
        if (j == s.size() && flag) cout << "yes" << endl;
        else cout << "no" << endl;
    }
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s, tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    for (ind = 0; ind < enc.size(); ind++) {
        if (enc[ind] == s[i]) i++;
        if (i == s.size()) { ok = 1; break; }
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s, tmp;
    while (n--) {
        cin >> tmp;
        s += "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind < enc.size()) {
        if (enc[ind] == s[i]) i++;
        if (i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s,tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind<enc.size()) {
        if (enc[ind] == s[i]) i++;
        if (i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#include <iostream>
#include <list>
#include <string>
#include <queue>
using namespace std;
int main(){
    int n;
    while (cin >> n){
        string s, s1;
        while (n--){
            cin >> s1;
            s += s1;
        }
        cin >> s1;
        int j = 0;
        for (int i = 0; i < s1.size(); i++){
            if (s[j] == s1[i]) j++;
        }
        if (j == s.size()) cout << "yes" << endl;
        else cout << "no" << endl;
    }
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    cin >> n;
    string s,tmp;
    while (n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i = 0, ind = 0;
    while (ind<enc.size()) {
        if (enc[ind] == s[i]) i++;
        ind++;
    }
    i==s.size() ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
string A[100002];
int main()
{
 int n;
 cin>>n;
 for(int i=0;i<n;++i)
    cin>>A[i];

 char now = '<';
 string message;
 int r=0,c=0;
 cin>>message;

bool complete = 0;
 for(int i=0;i<message.size();++i)
 {

     if(message[i] == now)
     {
         if(now == '<')
         {
             now = '3';
             continue;
         }
         else if(now == '3')
         {
             if(r>=n)
              {
                    complete = true;
                  continue;
              }
             now = A[r][c];
         }
         else if(r<n  && now == A[r][c])
         {
             ++c;
             if(c == A[r].size())
             {
                 ++r;
                 now = '<';
                 c=0;
             }
             else if(c < A[r].size())
                now = A[r][c];

         }

     }

 }
 if(now == '3' && r == n && c == 0 && complete)
    cout<<"yes"<<endl;
 else
    cout<<"no"<<endl;

}


#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
string A[10005];
int main()
{
 int n;
 cin>>n;
 for(int i=0;i<n;++i)
    cin>>A[i];

 char now = '<';
 string message;
 int r=0,c=0;
 cin>>message;

 for(int i=0;i<message.size();++i)
 {

     if(message[i] == now)
     {
         if(now == '<')
         {
             now = '3';
             continue;
         }
         else if(now == '3')
         {
             if(r>=n)
                continue;
             now = A[r][c];
         }
         else if(r<n  && now == A[r][c])
         {
             ++c;
             if(c == A[r].size())
             {
                 ++r;
                 now = '<';
                 c=0;
             }
             else
                now = A[r][c];

         }

     }

 }
 if(now == '3' && r == n && c == 0)
    cout<<"yes"<<endl;
 else
    cout<<"no"<<endl;

}


#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
string A[20005];
int main()
{
 int n;
 cin>>n;
 for(int i=0;i<n;++i)
    cin>>A[i];

 char now = '<';
 string message;
 int r=0,c=0;
 cin>>message;

bool complete = 0;
 for(int i=0;i<message.size();++i)
 {

     if(message[i] == now)
     {
         if(now == '<')
         {
             now = '3';
             continue;
         }
         else if(now == '3')
         {
             if(r>=n)
              {
                    complete = true;
                  continue;
              }
             now = A[r][c];
         }
         else if(r<n  && now == A[r][c])
         {
             ++c;
             if(c == A[r].size())
             {
                 ++r;
                 now = '<';
                 c=0;
             }
             else if(c < A[r].size())
                now = A[r][c];

         }

     }

 }
 if(now == '3' && r == n && c == 0 && complete)
    cout<<"yes"<<endl;
 else
    cout<<"no"<<endl;

}


#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
string A[20005];
int main()
{
 int n;
 cin>>n;
 for(int i=0;i<n;++i)
    cin>>A[i];

 char now = '<';
 string message;
 int r=0,c=0;
 cin>>message;

 for(int i=0;i<message.size();++i)
 {

     if(message[i] == now)
     {
         if(now == '<')
         {
             now = '3';
             continue;
         }
         else if(now == '3')
         {
             if(r>=n)
                continue;
             now = A[r][c];
         }
         else if(r<n  && now == A[r][c])
         {
             ++c;
             if(c == A[r].size())
             {
                 ++r;
                 now = '<';
                 c=0;
             }
             else if(c < A[r].size())
                now = A[r][c];

         }

     }

 }
 if(now == '3' && r == n )
    cout<<"yes"<<endl;
 else
    cout<<"no"<<endl;

}


#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);

	int n;
	cin >> n;
	cin.get();

	string s1 = "<3";
	for (int i = 0; i < n; ++i) {
		string s0;
		getline(cin, s0);
		s1 += s0;
		s1 += "<3";
	}

	string s2;
	getline(cin, s2);

	if (s2.size() < s1.size()) {
		cout << "no\n";
		return 0;
	}

	int x = 0, y = 0;
	while (x < s1.size() && y < s2.size()) {
		if (s1[x] == s2[y]) {
			++x;
			++y;
		} else {
			++y;
		}
	}

	if (x == s1.size())
		cout << "yes\n";
	else
		cout << "no\n";
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int z=0;
int j=0;

for (;z<s.length();)
{
 cout << l[j] << " " << s[z] << "\n";
if (l[j]==s[z]) {j++;}
z++;
}
if ((j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
int j=0;
for (;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
}
if ((i==s.length() || j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
int j=0;
for (;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
}
if ((j==l.length() && i<s.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l;
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
for (int j=0;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {cout << s[i] << " ";break;}
}
if (i==s.length()-1 && l.length() != s.length()) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
int j=0;
for (;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
}
cout << i << " ";
cout << s.length()-1 << " ";
if ((i==s.length() || j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int z=0;
int j=0;

for (z=0;z<s.length();z++)
{
if (l[j]==s[z]) {j++;}
}
if ((j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
int j=0;
for (;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
}
if ((i==s.length()) || (j==l.length() && i<s.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m[10000];
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m[i];
m[i]=m[i]+"<3";
}
cin >> s;
int i=0;
for (int z=0;z<k;z++)
for (int j=0;j<m[z].length();j++)
{
for (;i<s.length();i++)
if (m[z][j]==s[i]) {break;}
}
if (i==s.length()-1) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l;
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
for (int j=0;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
}
if (i==s.length()-1 && l.length() != s.length()) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l+=m;
l+="<3";
}
cin >> s;
int z=0;
int j=0;

for (z=0;z<s.length();z++)
{
if (l[j]==s[z]) {j++;}
}
if ((j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int i=0;
int j=0;
for (;j<l.length();j++)
{
for (;i<s.length();i++)
if (l[j]==s[i]) {break;}
if (i=s.length()) {j=1+l.length();}
}
if ((j==l.length() && i<s.length())) cout << "yes"; else cout << "no";
    return 0;
}


#include <iostream>
#include <string>
using namespace std;
int k;
string m;
string l="<3";
string s;
int main()
{
cin >> k;
for (int i=0;i<k;i++)
{
cin >> m;
l=l+m+"<3";
}
cin >> s;
int z=0;
int j=0;

for (;z<s.length();)
{
if (l[j]==s[z]) {j++;}
z++;
}
if ((j==l.length())) cout << "yes"; else cout << "no";
    return 0;
}


// iostream is too mainstream
#include <cstdio>
// bitch please
#include <iostream>
#include <vector>
#include <set>
#include <tr1/unordered_map>
#include <string>
#include <queue>
#include <stack>
#include <algorithm>
#include <cmath>
#define dibs reserve
#define OVER9000 234567890
#define tisic 47
#define soclose 10e-7
#define ALL_THE(CAKE,LIE) for(auto LIE =CAKE.begin(); LIE != CAKE.end(); LIE++)
#define chocolate win
// so much chocolate
#define ff first
#define ss second
#define uint unsigned int
#define sent(x,y) (x >= 0 && y >= 0 && x < R && y < C)
// mylittlepony
using namespace std;

int main() {
	cin.sync_with_stdio(0);
	int N;
	cin >> N;
	string t ="<3", s;
	for(int i =0; i < N; i++) {
		cin >> s;
		t +=s+"<3";}
	cin >> s;

	int a =0;
	for(int i =0; i < s.length(); i++) {
		if(a == t.length()) break;
		if(t[a] == s[i]) a++;}
	if(a == t.length()) cout << "yes\n";
	else cout << "no\n";
    return 0;}

// look at my code
// my code is amazing


#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;

int     n,m;
string  A,B;

int     main()
{
        scanf("%d\n",&n);
        for (int i=1;i<=n;i++)
        {
            string t;
            cin>>t; A+="<3"+t;
        }
        A+="<3";    cin>>B;

        n=A.length();
        m=B.length();

        int i=0,j=0;
        while (i<n && j<m)
        {
            if  (A[i]==B[j])    i++,j++;
                else    j++;
        }

        if  (i==n)  printf("yes\n");
            else    printf("no\n");
        return 0;
}


#include <iostream>
#include <string>

#define MAX 100005

int Begin[MAX], End[MAX], N;
using namespace std;
string Enc, W[MAX];

int main()
{
    cin >> N;

    for(int i = 0; i < N; i++)
        cin >> W[i];

    cin >> Enc;

    int w = 0;
    string s = "";

    for(int i = 0; i < Enc.length(); i++)
        if(Enc[i] < 'a' || Enc[i] > 'z')
        {
            if(s.length() > 0)
            {
                if(s != W[w])
                {
                    cout << "no";
                    return 0;
                }

                End[w] = i-1;
                s = "";
                w++;
            }
        }
        else
        {
            s += Enc[i];

            if(s.length() == 1)
                Begin[w] = i;
        }

    Begin[N] = Enc.length();

    for(int i = 0; i < N; i++)
    {
        bool first = false, second = false;

        for(int p = End[i] + 1; p < Begin[i+1]; p++)
        {
            if(Enc[p] == '<')
                first = true;
            if(Enc[p] == '3' && first)
                second = true;
        }

        if(!first || !second)
        {
            cout << "no";
            return 0;
        }
    }

    cout << "yes";
}


#include <iostream>
#include <string>

#define MAX 100005

int N;
using namespace std;
string Enc, F, W[MAX];

int main()
{
    cin >> N;

    for(int i = 0; i < N; i++)
        cin >> W[i];

    cin >> Enc;

    for(int i = 0; i < N; i++)
    {
        F += "<3";
        F += W[i];
    }

    F += "<3";

    int p = 0;

    for(int i = 0; i < Enc.length(); i++)
    {
        if(Enc[i] == F[p])
            p++;

        if(p == F.length())
        {
            cout << "yes";
            return 0;
        }
    }

    cout << "no";
}


#include <iostream>
#include <string>

#define MAX 100005

int N;
using namespace std;
string Enc, F, W[MAX];

int main()
{
    cin >> N;

    for(int i = 0; i < N; i++)
        cin >> W[i];

    cin >> Enc;

    for(int i = 0; i < N; i++)
    {
        F += "<3";
        F += W[i];
    }

    F += "<3";

    int p = 0;

    for(int i = 0; i < Enc.length(); i++)
    {
        if(Enc[i] >= 'a' && Enc[i] <= 'z' && Enc[i] != F[p])
        {
            cout << "no";
            return 0;
        }

        if(Enc[i] == F[p])
            p++;

        if(p == F.length())
        {
            cout << "yes";
            return 0;
        }
    }

    cout << "no";
}


#include <iostream>
#include <string>

#define MAX 100005

int Begin[MAX], End[MAX], N;
using namespace std;
string Enc, W[MAX];

int main()
{
    cin >> N;

    for(int i = 0; i < N; i++)
        cin >> W[i];

    cin >> Enc;

    int w = 0;
    string s = "";

    for(int i = 0; i < Enc.length(); i++)
        if(Enc[i] >= 'a' && Enc[i] <= 'z')
        {
            s += Enc[i];

            if(s.length() == 1)
                Begin[w] = i;

            if(s.length() == W[w].length())
            {
                if(s != W[w])
                {
                    cout << "no";
                    return 0;
                }

                End[w] = i;
                s = "";
                w++;
            }
        }

    if(s.length() > 0)
    {
        cout << "no";
        return 0;
    }

    Begin[N] = Enc.length();

    bool first = false, second = false;

    for(int p = 0; p < Begin[0]; p++)
    {
        if(Enc[p] == '<')
            first = true;
        if(Enc[p] == '3' && first)
            second = true;
    }

    if(!first || !second)
    {
        cout << "no";
        return 0;
    }

    for(int i = 0; i < N; i++)
    {
        bool first = false, second = false;

        for(int p = End[i] + 1; p < Begin[i+1]; p++)
        {
            if(Enc[p] == '<')
                first = true;
            if(Enc[p] == '3' && first)
                second = true;
        }

        if(!first || !second)
        {
            cout << "no";
            return 0;
        }
    }

    cout << "yes";
}


#include <iostream>
#include <string>

#define MAX 100005

int Begin[MAX], End[MAX], N;
using namespace std;
string Enc, W[MAX];

int main()
{
    cin >> N;

    for(int i = 0; i < N; i++)
        cin >> W[i];

    cin >> Enc;

    int w = 0;
    string s = "";

    for(int i = 0; i < Enc.length(); i++)
        if(Enc[i] >= 'a' && Enc[i] <= 'z')
        {
            s += Enc[i];

            if(s.length() == 1)
                Begin[w] = i;

            if(s.length() == W[w].length())
            {
                if(s != W[w])
                {
                    cout << "no";
                    return 0;
                }

                End[w] = i;
                s = "";
                w++;
            }
        }

    if(s.length() > 0)
    {
        cout << "no";
        return 0;
    }

    Begin[N] = Enc.length();

    for(int i = 0; i < N; i++)
    {
        bool first = false, second = false;

        for(int p = End[i] + 1; p < Begin[i+1]; p++)
        {
            if(Enc[p] == '<')
                first = true;
            if(Enc[p] == '3' && first)
                second = true;
        }

        if(!first || !second)
        {
            cout << "no";
            return 0;
        }
    }

    cout << "yes";
}


    // #includes {{{
	#include<stdio.h>
	#include<stdlib.h>
	#include<string.h>
	#include<math.h>
	#include<assert.h>
	#include<stdarg.h>
	#include<time.h>
	#include<limits.h>
	#include<ctype.h>
	#include<string>
	#include<map>
	#include<set>
	#include<queue>
	#include<algorithm>
	#include<vector>
	#include<iostream>
	#include<sstream>
	using namespace std;
	// }}}
	// #defines {{{
	#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
	#define SZ(x) ((int)(x).size())
	#define ALL(x) (x).begin(),(x).end()
	#define REP(i,n) for(int i=0;i<(n);i++)
	#define REP1(i,a,b) for(int i=(a);i<=(b);i++)
	#define PER(i,n) for(int i=(n)-1;i>=0;i--)
	#define PER1(i,a,b) for(int i=(a);i>=(b);i--)
	#define RI(x) scanf("%d",&x)
	#define DRI(x) int x;RI(x)
	#define RII(x,y) scanf("%d%d",&x,&y)
	#define DRII(x,y) int x,y;RII(x,y)
	#define RIII(x,y,z) scanf("%d%d%d",&x,&y,&z)
	#define DRIII(x,y,z) int x,y,z;RIII(x,y,z)
	#define RS(x) scanf("%s",x)
	#define PI(x) printf("%d\n",x)
	#define PIS(x) printf("%d ",x)
	#define CASET int ___T,cas=1;scanf("%d",&___T);while(___T--)
	#define CASEN0(n) int cas=1;while(scanf("%d",&n)!=EOF&&n)
	#define CASEN(n) int cas=1;while(scanf("%d",&n)!=EOF)
	#define MP make_pair
	#define PB push_back
	#define MS0(x) memset(x,0,sizeof(x))
	#define MS1(x) memset(x,-1,sizeof(x))

	#define F first
	#define S second
	typedef pair<int,int> PII;
	typedef long long LL;
	typedef unsigned long long ULL;
	// }}}
const int N=100010;
string a[N];
int n;
main(){
	//freopen("in.txt","r",stdin);
	cin>>n;
	REP(i,n){
		cin>>a[i];
		a[i]="<3"+a[i];
	}
	a[n-1]+="<3";
	int now=0;
	string w;
	cin>>w;
	int p=0;
	for (int i=0;i<w.size();i++){
		if(w[i]==a[now][p]){
			p++;
			if (p==a[now].size()){
				p=0;
				now++;
			}
		}
	}
	if (now==n) puts("yes");else puts("no");
}


    // #includes {{{
	#include<stdio.h>
	#include<stdlib.h>
	#include<string.h>
	#include<math.h>
	#include<assert.h>
	#include<stdarg.h>
	#include<time.h>
	#include<limits.h>
	#include<ctype.h>
	#include<string>
	#include<map>
	#include<set>
	#include<queue>
	#include<algorithm>
	#include<vector>
	#include<iostream>
	#include<sstream>
	using namespace std;
	// }}}
	// #defines {{{
	#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
	#define SZ(x) ((int)(x).size())
	#define ALL(x) (x).begin(),(x).end()
	#define REP(i,n) for(int i=0;i<(n);i++)
	#define REP1(i,a,b) for(int i=(a);i<=(b);i++)
	#define PER(i,n) for(int i=(n)-1;i>=0;i--)
	#define PER1(i,a,b) for(int i=(a);i>=(b);i--)
	#define RI(x) scanf("%d",&x)
	#define DRI(x) int x;RI(x)
	#define RII(x,y) scanf("%d%d",&x,&y)
	#define DRII(x,y) int x,y;RII(x,y)
	#define RIII(x,y,z) scanf("%d%d%d",&x,&y,&z)
	#define DRIII(x,y,z) int x,y,z;RIII(x,y,z)
	#define RS(x) scanf("%s",x)
	#define PI(x) printf("%d\n",x)
	#define PIS(x) printf("%d ",x)
	#define CASET int ___T,cas=1;scanf("%d",&___T);while(___T--)
	#define CASEN0(n) int cas=1;while(scanf("%d",&n)!=EOF&&n)
	#define CASEN(n) int cas=1;while(scanf("%d",&n)!=EOF)
	#define MP make_pair
	#define PB push_back
	#define MS0(x) memset(x,0,sizeof(x))
	#define MS1(x) memset(x,-1,sizeof(x))

	#define F first
	#define S second
	typedef pair<int,int> PII;
	typedef long long LL;
	typedef unsigned long long ULL;
	// }}}
const int N=100010;
string a[N];
int n;
main(){
	//freopen("in.txt","r",stdin);
	cin>>n;
	REP(i,n){
		cin>>a[i];
	}
	string t,w;
	cin>>w;
	t.clear();
	char c;
	int now=0;
	for (int i=0;i<w.size();i++){
		c=w[i];
		if (c<'a' || c>'z') continue;
		t+=c;
		if (t.size()==a[now].size()){
			if (t!=a[now]){
				puts("no");
				return 0;
			}else{
				t.clear();
				now++;
			}
		}
	}
	if (now==n) puts("yes");else puts("no");
}


    // #includes {{{
	#include<stdio.h>
	#include<stdlib.h>
	#include<string.h>
	#include<math.h>
	#include<assert.h>
	#include<stdarg.h>
	#include<time.h>
	#include<limits.h>
	#include<ctype.h>
	#include<string>
	#include<map>
	#include<set>
	#include<queue>
	#include<algorithm>
	#include<vector>
	#include<iostream>
	#include<sstream>
	using namespace std;
	// }}}
	// #defines {{{
	#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
	#define SZ(x) ((int)(x).size())
	#define ALL(x) (x).begin(),(x).end()
	#define REP(i,n) for(int i=0;i<(n);i++)
	#define REP1(i,a,b) for(int i=(a);i<=(b);i++)
	#define PER(i,n) for(int i=(n)-1;i>=0;i--)
	#define PER1(i,a,b) for(int i=(a);i>=(b);i--)
	#define RI(x) scanf("%d",&x)
	#define DRI(x) int x;RI(x)
	#define RII(x,y) scanf("%d%d",&x,&y)
	#define DRII(x,y) int x,y;RII(x,y)
	#define RIII(x,y,z) scanf("%d%d%d",&x,&y,&z)
	#define DRIII(x,y,z) int x,y,z;RIII(x,y,z)
	#define RS(x) scanf("%s",x)
	#define PI(x) printf("%d\n",x)
	#define PIS(x) printf("%d ",x)
	#define CASET int ___T,cas=1;scanf("%d",&___T);while(___T--)
	#define CASEN0(n) int cas=1;while(scanf("%d",&n)!=EOF&&n)
	#define CASEN(n) int cas=1;while(scanf("%d",&n)!=EOF)
	#define MP make_pair
	#define PB push_back
	#define MS0(x) memset(x,0,sizeof(x))
	#define MS1(x) memset(x,-1,sizeof(x))

	#define F first
	#define S second
	typedef pair<int,int> PII;
	typedef long long LL;
	typedef unsigned long long ULL;
	// }}}
const int N=1010;
string a[N];
int n;
main(){
	//freopen("in.txt","r",stdin);
	cin>>n;
	REP(i,n){
		cin>>a[i];
	}
	string t,w;
	cin>>w;
	t.clear();
	char c;
	int now=0;
	for (int i=0;i<w.size();i++){
		c=w[i];
		if (c<'a' || c>'z') continue;
		t+=c;
		if (t.size()==a[now].size()){
			if (t!=a[now]){
				puts("no");
				return 0;
			}else{
				t.clear();
				now++;
			}
		}
	}
	if (now==n) puts("yes");else puts("no");
}


#include<string>
#include<iostream>
#include<cstdio>
using namespace std;

string s="<3",tmp,s1;

int n,now=0,j=0,last=0;
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>tmp;
		s+=tmp;
		s+="<3";
	}

	cin>>s1;

	int i=0;
	while(i<s1.size()&&j<s.size())
	{
		if(s1[i]==s[j])j++;
		i++;
		//cout<<s1[i]<<' '<<s[j]<<endl;
	}
	if(j==s.size())cout<<"yes";
	else cout<<"no";
	return 0;
}


#pragma comment(linker, "/STACK:65777216")
#include <iostream>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <string>
#include <stack>
#include <deque>
#include <queue>
#include <set>
#include <map>
#include <utility>
#include <ctime>
#define pb push_back
#define mp make_pair
#define lose first
#define that second
#define ll long long

using namespace std;

int n;
string s;
string s1, a;

int binpow (int a1, int b1)
{
    if (b1 == 0)
    {
        return 1;
    }
    if (b1 % 2 == 1)
    {
        return binpow (a1, b1-1) * a1;
    }
    else
    {
        int b = binpow (a1, b1/2);
        return b * b;
    }
}

int gcd (int a1, int b1)
{
    if (b1 == 0)
        return a1;
    else
        return gcd (b1, a1 % b1);
}

int main ()
{
    cin>>n;
	s="<3";
	for (int i=0; i<n; i++)
	{
		cin>>s1;
		s+=s1+"<3";
	}
	cin>>a;
	if (a.size()<s.size())
	{
		cout<<"no";
		return 0;
	}
	int f=0;
	for (int i=0; i<a.size(); i++)
	{
		if (a[i]==s[f])
		{
			f++;
		}
		if (f>=s.size())
		{
			cout<<"yes";
			return 0;
		}
	}
	cout<<"no";
}


#include <functional>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <stdio.h>
#include <string>
#include <vector>
#include <cctype>
#include <math.h>
#include <time.h>
#include <queue>
#include <stack>
#include <set>
#include <map>

using namespace std;

#define all(p) (p).begin(), (p).end()
#define fi first
#define se second

typedef long long ll;

const int N = 111111;
const int INF = int(1e9), mod = INF + 7;

int main() {

    int n;

    string good_res = "<3";

    cin >> n;

    while(n--) {
        string s;
        cin >> s;

        good_res += s + "<3";
    }

    string res;
    cin >> res;

    int it = 0;

    for (int i = 0; i < res.length(); ++i) {

        if (good_res[it] == res[i]) it++;

        if (it == good_res.length()) {
            puts("yes");
            return 0;
        }
    }

    puts("no");

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
   // cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s, tmp;
    while(n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i=0, ind = 0;
    while(ind<enc.size()) {
        if(enc[ind] == s[i]) i++;
        if(i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s;
    vector<string>tmp(n + 1);
    while(n--) {
        cin >> tmp[n];
        s = s + "<3" + tmp[n];
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 1;
    int ind = 0;
    for(int i = 0; i < s.size(); i++) {
        while(ind < enc.size() && enc[ind] != s[i]) ind++;
        if(ind >= enc.size()) { ok = 0; break; }
        ind++;
    }

    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s, tmp;
    while(n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 1;
    int ind = 0;
    for(int i = 0; i < s.size(); i++) {
        while(ind < enc.size() && enc[ind] != s[i]) ind++;
        if(ind >= enc.size()) { ok = 0; break; }
        ind++;
    }

    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s, tmp;
    while(n--) {
        cin >> tmp;
        s = s + "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i=0, ind = 0;
    while(ind<enc.size()) {
        if(enc[ind] == s[i]) i++;
        if(i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s;
    vector<string>tmp(n + 1);
    while(n--) {
        cin >> tmp[n];
        s = s + "<3" + tmp[n];
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i=0, ind = 0;
    while(ind<enc.size()) {
        if(enc[ind] == s[i]) i++;
        if(i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    while(cin >> n) {
        string s;
        while(n--) {
            string tmp;
            cin >> tmp;
            s = s + "<3" + tmp;
        }
        s += "<3";

        string enc;
        cin >> enc;

        bool ok = 1;
        int ind = 0;
        for(int i = 0; i < s.size(); i++) {
            while(ind < enc.size() && enc[ind] != s[i]) ind++;
            if(ind >= enc.size()) { ok = 0; break; }
            ind++;
        }

        ok ? cout << "yes\n" : cout << "no\n";
    }
    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    while(cin >> n) {
        string s;
        while(n--) {
            string tmp;
            cin >> tmp;
            s = s + "<3" + tmp;
        }
        s += "<3";

        string enc;
        cin >> enc;

        bool ok = 1;
        int ind = 0;
        for(int i = 0; i < s.size(); i++) {
            while(ind < enc.size() && enc[ind] != s[i]) ind++;
            if(ind >= enc.size()) { ok = 0; break; }
            ind++;
        }

        ok ? cout << "yes\n" : cout << "no\n";
    }
    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    cin.sync_with_stdio(false);
    int n;
    cin >> n;
    string s, tmp;
    while(n--) {
        cin >> tmp;
        s += "<3" + tmp;
    }
    s += "<3";

    string enc;
    cin >> enc;

    bool ok = 0;
    int i=0, ind = 0;
    while(ind<enc.size()) {
        if(enc[ind] == s[i]) i++;
        if(i == s.size()) { ok = 1; break; }
        ind++;
    }
    ok ? cout << "yes\n" : cout << "no\n";

    return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <map>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>

#define oo 1e9
#define pi 3.1415926536
#define all(x) x.begin(),x.end()
#define sorta(x) sort(all(x))
#define sortam(x,comp) sort(all(x),comp)
#define sortd(x) sort(x.rbegin(),x.rend())
#define pb push_back
#define mp make_pair
#define sf(x) scanf("%d", &x);
#define sfll(x) scanf("%I64d", &x);
#define pr(x) printf("%d ", x);

typedef long long ll;
using namespace std;

int main() {
    int n;
    while(cin >> n) {
        string s;
        while(n--) {
            string tmp;
            cin >> tmp;
            s = s + "<3" + tmp;
        }
        s += "<3";

        string enc;
        cin >> enc;

        bool ok = 1;
        int ind = 0;
        for(int i = 0; i < s.size(); i++) {
            while(ind < enc.size() && enc[ind] != s[i]) ind++;
            if(ind >= enc.size()) { ok = 0; break; }
        }

        ok ? cout << "yes\n" : cout << "no\n";
    }
    return 0;
}


#include <iostream>
#include <string>
#include <stdio.h>
#include <vector>
#include <queue>
#include <deque>
#include <cstring>
#include <stack>
#include <time.h>
#include <cmath>
#include <memory.h>
#include <algorithm>
#include <set>
#include <map>

using namespace std;

#define pb push_back
#define si size
#define mp make_pair
#define x first
#define y second
#define pob pop_back

typedef long long ll;
typedef double de;
typedef string str;
typedef vector<ll> vecl;
typedef pair<ll, ll> pll;
typedef vector<bool> veb;

const ll maxn = 1e5 + 5, INF = 1e18 + 1;

ll a, n, m, i, j, k;
str s1, s2, answer, s3;

int main(){

#ifdef _DEBUG
  freopen("input.txt", "r", stdin);
#endif

	cin >> n;
	s2 = "<3";
	s1 += s2;
	for(i = 0; i < n; ++i){
		str s0;
		cin >> s0;
		s1 += s0;
		s1 += s2;
	}
	j = 0;
	cin >> s3;
	for(i = 0; i < s1.si(); ++i){
		while(j < s3.si() && s3[j] != s1[i]){
			j++;
		}
		if(j >= s3.si()){
			break;
		}
		j++;
	}
	if(i != s1.si()){
		answer = "no";
	}
	else{
		answer = "yes";
	}
	cout << answer;
}


#include <iostream>
#include <string>
#include <stdio.h>
#include <vector>
#include <queue>
#include <deque>
#include <cstring>
#include <stack>
#include <time.h>
#include <cmath>
#include <memory.h>
#include <algorithm>
#include <set>
#include <map>

using namespace std;

#define pb push_back
#define si size
#define mp make_pair
#define x first
#define y second
#define pob pop_back

typedef long long ll;
typedef double de;
typedef string str;
typedef vector<ll> vecl;
typedef pair<ll, ll> pll;
typedef vector<bool> veb;

const ll maxn = 1e5 + 5, INF = 1e18 + 1;

ll a, n, m, i, j, k;
str s1, s2, answer, s3;

int main(){

#ifdef _DEBUG
  freopen("input.txt", "r", stdin);
#endif

	cin >> n;
	s2 = "<3";
	s1 += s2;
	for(i = 0; i < n; ++i){
		str s0;
		cin >> s0;
		s1 += s0;
		s1 += s2;
	}
	j = 0;
	cin >> s3;
	for(i = 0; i < s1.si(); ++i){
		while(j < s3.si() && s3[j] != s1[i]){
			j++;
		}
		if(j > s3.si()){
			break;
		}
		j++;
	}
	if(i != s1.si()){
		answer = "no";
	}
	else{
		answer = "yes";
	}
	cout << answer;
}


// TwT514 {{{
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <bitset>
#include <queue>
#include <stack>
#include <functional>
#include <utility>
#define SZ(x) ((int)(x).size())
#define FOR(i,c) for (__typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++)
#define REP(i,n) for (int i=0; i<(n); i++)
#define REP1(i,a,b) for (int i=(int)(a); i<=(int)(b); i++)
#define ALL(x) (x).begin(),(x).end()
#define MS0(x,n) memset((x),0,(n)*sizeof(*x))
#define MS1(x,n) memset((x),-1,(n)*sizeof(*x))
#define MP make_pair
#define PB push_back
#define RI(a) scanf("%d",&(a))
#define RII(a,b) scanf("%d%d",&(a),&(b))
#define RIII(a,b,c) scanf("%d%d%d",&(a),&(b),&(c))
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
typedef vector<int> VI;
// }}}

int main() {
    ios_base::sync_with_stdio(false);
    int n;
    string s="<3",t;
    cin>>n;
    while ( n-- ) {
        string in;
        cin>>in;
        s+=in+"<3";
    }
    cin>>t;
    for ( int i=0,j=0; i<SZ(s); i++ ) {
        while ( j<SZ(t) && s[i]!=t[j] ) j++;
        if ( j==SZ(t) ) return puts("no"),0;
        j++;
    }
    puts("yes");
    return 0;
}


#include <bits/stdc++.h>
#define endl "\n"
#define FOR(x, y, z) for (int x = (y); x < (z); ++x)
#define FORR(x, y, z) for (int x = (y); x > (z); --x)
#define SORT(a) sort(a.begin(), a.end())
#define SORTR(a) sort(a.rbegin(), a.rend())
#define GET(a, n) for (int i = 0; i < n; ++i) cin >> a[i];
#define GETM(a, n, m) for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) cin >> a[i][j];
#define PRINTM(a, n, m) for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) cout << a[i][j] << " ";  cout << endl; };
#define PRINT(a, n) for (int i = 0; i < n; ++i) cout << a[i] << " ";
#define LL long long
#define ULL unsigned long long
#define VI vector <int>
#define VVI vector <vector<int>>
#define PII pair <int, int>
#define GETSUM(sum, n) sum = 0; for (int i = 0; i < n; ++i) { int tmp; cin >> tmp; sum += tmp; }
#define SUM(a, n, sum) sum = 0; for (int i = 0; i < n; ++i) { sum += a[i]; }
#define IT(a) a.begin(), a.end()
using namespace std;
template <class T> typename T::value_type arr_sum(const T& v, int n) { typename T::value_type sum = 0; FOR(i, 0, n) sum += v[i]; return sum; }
struct Sync_stdio { Sync_stdio() { cin.tie(NULL); ios_base::sync_with_stdio(false); } } _sync_stdio;

int main()
{
    int n;
    cin >> n;
    vector <string> v(n);
    FOR (i, 0, n) {
        cin >> v[i];
    }
    string s;
    cin >> s;
    int j = 0;
    int k = 0;
    int flag = 2;
    FOR (i, 0, s.size()) {
        if (flag == 2) {
            if (s[i] == '<') {
                --flag;
            }
            continue;
        }
        if (flag == 1) {
            if (s[i] == '3') {
                --flag;
            }
            continue;
        }
        if (j != v.size() && v[j][k] == s[i]) {
            ++k;
            if (k == v[j].size()) {
                k = 0;
                ++j;
            }
        }
    }
    if (!flag && j == v.size()) {
        cout << "yes";
    } else {
        cout << "no";
    }
}