This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define fr first
#define se second
#define sc scanf
#define pf printf
#define ld long double
#define ll long long
#define pb push_back
#define sq(n) n * n
#define r_0 return 0
#define pr pair < ll, ll >
#define prr pair < pair < ll, ll >, ll >
#define fin(s) freopen( s, "r", stdin )
#define fout(s) freopen( s, "w", stdout )
#define TIME ios_base::sync_with_stdio(0)
using namespace std;
const ll INF = 1e9;
const ll N = 2e3 + 3;
const ll mod = 998244353;
const ld eps = 1e-7;
ll n, m;
ll ans;
ll b[N], a[N];
vector < ll > v[N];
main(){
    TIME;
    //fin( "bank.in" );
    //fout( "bank.out" );
    cin >> n >> m;
    for( int i = 1; i <= n; i ++ ){
        cin >> a[i];
    }
    for( int i = 1; i <= m; i ++ )cin >> b[i];
    for( int i = 0; i <= ( 1 << m + 1 ); i ++ ){
        ans = 0;
        vector < ll > g;
        for( int j = 0; j < m; j ++ ){
            ll k = ( i >> j ) & 1;
            if( k == 1 )ans += b[j + 1], g.pb( j + 1 );
        }
        if( ans <= N - 2 && v[ans].empty() )v[ans] = g;
        //cout << i << ' ' << ans << '\n';
    }
    for( int i = 1; i <= n; i ++ ){
        //cout << "=> " << a[i] << " ";
        if( v[a[i]].empty() ){ cout << "NO"; r_0; }
        for( auto u: v[a[i]] ){
            //cout << u << ' ';
            if( !b[u] ){ cout << "NO"; r_0; }
            b[u] = 0;
        }
        //cout << endl;
    }
    cout << "YES";
}
Compilation message (stderr)
bank.cpp:28:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
bank.cpp: In function 'int main()':
bank.cpp:37:35: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
     for( int i = 0; i <= ( 1 << m + 1 ); i ++ ){
                                 ~~^~~| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |