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


int main()
{
    unsigned x,y,n;
    
    while(cin>>x>>y>>n){
        vector<bool> possible(max(x,y)+1,false);
        vector<unsigned> tiles(n);
    
        for(unsigned i=0; i<n; ++i) cin>>tiles[i];

        possible[0]=1;
        for(unsigned i=0; i<possible.size()-1; ++i)
            if(possible[i])
                for(unsigned j=0; j<tiles.size(); ++j)
                    if(i+j<possible.size()) 
                        possible[i+j]=true;         


        if( 
              (possible[x] && possible[x-2] && possible[y-1]) ||
              (possible[x] && possible[y-2])                  ||
              (possible[x-2] && possible[y])                  ||
              (possible[x-1] && possible[y-1])                ||
              (possible[y] && possible[y-2] && possible[x-1]) 
          ) cout<<"YES\n";
        else cout<<"NO\n";
    }
}