#include #include #include using namespace std; int main() { int N,M; cin >> N >> M; vector U(N+1,0); vector T(M+1,0); for(int i=1;i<=N;i++){ cin >> U[i]; } for(int i=1;i<=M;i++){ cin >> T[i]; } vector> dp(M+1,vector (1000*100+1,0)); dp[0][0]=1; for(int i=1;i<=M;i++){ for(int j=0;j<=1000*100;j++){ if(j>=T[i]){ dp[i][j]=max(dp[i-1][j], dp[i-1][j-T[i]]); }else{ dp[i][j]=dp[i-1][j]; } } } set S; for(int i=1;i<=N;i++){ for(int j=0;j<=1000*100;j++){ if(dp[M][j]==1){ S.insert(U[i]+j); } } } cout << S.size() << "\n"; return 0; }