DP
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int c,g;
const int maxn=21;
int gm[maxn],gz[maxn];
int dp[maxn][15000+4];
int main()
{
scanf("%d%d",&c,&g);
for(int i=1;i<=c;i++) scanf("%d",&gz[i]);
for(int i=1;i<=g;i++) scanf("%d",&gm[i]);
memset(dp,0,sizeof(dp));
dp[0][7500]=1;
for(int i=1;i<=g;i++)
for(int j=0;j<=15000;j++)
for(int k=1;k<=c;k++)
{
dp[i][j+gm[i]*gz[k]]+=dp[i-1][j];
}
printf("%d\n",dp[g][7500]);
return 0;
}