#include<cstdio>
long long tmpn,tmpm;
int tmpa[5000005],tmpb[5000005];
long long n,m,cnt;
struct Data{
int num;
int cnt;
}a[5000005],b[5000005],sc[10000010];
long long pi[10000010],res;
int gcd(int __a,int __b){
if(__b==0){
return __a;
}
return gcd(__b,__a%__b);
}
long long min(const long long &__x,const long long &__y){
if(__x<__y){
return __x;
}
return __y;
}
int main(){
scanf("%lld%lld",&tmpn,&tmpm);
a[0].num=0x7fff;
b[0].num=0x7fff;
for(long long i=1;i<=tmpn;i++){
scanf("%d",&tmpa[i]);
if(tmpa[i]!=a[n].num){
n++;
a[n].num=tmpa[i];
}
a[n].cnt++;
}
for(long long i=1;i<=tmpm;i++){
scanf("%d",&tmpb[i]);
if(tmpb[i]!=b[m].num){
m++;
b[m].num=tmpb[i];
}
b[m].cnt++;
}
if(m==1){
for(long long i=1;i<=n;i++){
if(a[i].num==b[1].num){
res+=((long long)a[i].cnt+1ll)*(long long)a[i].cnt/2ll;
}
}
printf("%lld\n",res);
return 0;
}
if(m==2){
int g=gcd(b[1].cnt,b[2].cnt);
b[1].cnt/=g;
b[2].cnt/=g;
for(long long i=1;i<n;i++){
if(a[i].num==b[1].num&&a[i+1].num==b[2].num){
res+=min((long long)a[i].cnt/(long long)b[1].cnt,(long long)a[i+1].cnt/(long long)b[2].cnt);
}
}
printf("%lld\n",res);
return 0;
}
for(int i=2;i<m;i++){
cnt++;
sc[cnt]=b[i];
}
cnt++;
sc[cnt].num=0x7fff;
sc[cnt].cnt=0;
for(int i=1;i<=n;i++){
cnt++;
sc[cnt]=a[i];
}
for(int i=2;i<=n+m-1;i++){
int j=pi[i-1];
while(j>0&&
!(sc[i].num==sc[j+1].num&&
(j+1==1||(long long)sc[i].cnt*(long long)sc[j].cnt==(long long)sc[i-1].cnt*(long long)sc[j+1].cnt))){
j=pi[j-1];
}
if(sc[i].num==sc[j+1].num&&
(j+1==1||(long long)sc[i].cnt*(long long)sc[j].cnt==(long long)sc[i-1].cnt*(long long)sc[j+1].cnt)){
j++;
}
pi[i]=j;
if(pi[i]==m-2){
if(
(i-pi[i]>=m&&i+1<=n+m-1)&&
(sc[i-pi[i]].num==b[1].num&&sc[i+1].num==b[m].num)&&
((long long)sc[i-pi[i]+1].cnt*(long long)b[1].cnt/(long long)b[2].cnt<=(long long)sc[i-pi[i]].cnt&&
(long long)sc[i].cnt*(long long)b[m].cnt/(long long)b[m-1].cnt<=(long long)sc[i+1].cnt)&&
(((long long)sc[i-pi[i]+1].cnt*(long long)b[1].cnt)%(long long)b[2].cnt==0ll&&
((long long)sc[i].cnt*(long long)b[m].cnt)%(long long)b[m-1].cnt==0ll)
){
res++;
}
}
}
printf("%lld\n",res);
return 0;
}