#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
ll dp[3010][3010];
int n,m;
ll pre[3010];
ll a[3010];
ll b[3010];
ll MOD = 1000000007;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
freopen("DIVGROUP.INP","r",stdin);
freopen("DIVGROUP.OUT","w",stdout);
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
pre[i] += pre[i-1] + a[i];
}
for(int j = 1; j <= m; j++){
cin >> b[j];
}
dp[0][0] = 1;
for(int j = 1; j <= m; j++){
for(int i = j; i <= n; i++){
for(int k = j - 1; k < i; k++){
if((pre[i] - pre[k]) % b[j] == 0){
dp[i][j] = (dp[i][j] + dp[k][j-1]) % MOD;
}
}
}
}
cout << dp[n][m];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZW5kbCAnXG4nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKbGwgZHBbMzAxMF1bMzAxMF07CmludCBuLG07CmxsIHByZVszMDEwXTsKbGwgYVszMDEwXTsKbGwgYlszMDEwXTsKbGwgTU9EID0gMTAwMDAwMDAwNzsKCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBmcmVvcGVuKCJESVZHUk9VUC5JTlAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJESVZHUk9VUC5PVVQiLCJ3IixzdGRvdXQpOwogICAgY2luID4+IG4gPj4gbTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBwcmVbaV0gKz0gcHJlW2ktMV0gKyBhW2ldOwogICAgfQogICAgZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspewogICAgICAgIGNpbiA+PiBiW2pdOwogICAgfQogICAgZHBbMF1bMF0gPSAxOwogICAgZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspewogICAgICAgIGZvcihpbnQgaSA9IGo7IGkgPD0gbjsgaSsrKXsKICAgICAgICAgICAgZm9yKGludCBrID0gaiAtIDE7IGsgPCBpOyBrKyspewogICAgICAgICAgICAgICAgaWYoKHByZVtpXSAtIHByZVtrXSkgJSBiW2pdID09IDApewogICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gKGRwW2ldW2pdICsgZHBba11bai0xXSkgJSBNT0Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGRwW25dW21dOwogICAgcmV0dXJuIDA7Cn0K