#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;
}