#include <iostream>
using namespace std;
int main()
{
    int n ,m;
    cin >> n >> m;
    int bozorg[n] , kuchik[m];

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

    for ( int i = 0 ; i < m ; i ++ )
    {
        cin >> kuchik[i];
    }

    for ( int a = 0 ; a < n - 1 ; a ++ )
    {
        for ( int b = 1 ; b < n ; b ++ )
        {
            if ( bozorg[a] > bozorg[b] )
            {
                swap ( bozorg[a] , bozorg[b] );
            }
        }
    }

    // چرا m - 1? => بخاطر اینکه ما نمیخوایم عضو اخر ارایه رو با خودش مقایسه کنیم 
    // چرا  a = 0 مگه min نمیشه شروع صفر از ?
    // => از کوچیکتری عضو اگه چون min بریزیم اندیس کوچیکترین توی اونو باید باشه

    int min = kuchik[0];
    for ( int a = 0 ; a < m - 1 ; a ++ )
    {
        min = kuchik[a];
        for ( int b = 1 ; b < m ; b ++ )
        {
            if ( kuchik[b] < min )
            {
                swap ( kuchik[a] , kuchik[b] );
            }

            else
            {
                kuchik[a] = min;
            }
        }
    }
    
    int tedad = 0;
    for ( int a = 0 ; a < m ; a ++ )
    {
        for ( int b = 0 ; b < n ; b ++ )
        {
            if ( kuchik[a] == bozorg[b] && tedad == a )
            {
                tedad ++;
            }
        }
    }

    if ( tedad == m )
    {
        cout << "Yes";
    }

    else
    {
        cout <<"No";
    }
        
    return 0;
}