#include <bits/stdc++.h>
#define ll long long int
#define inf 1e18
#define iosbase ios_base::sync_with_stdio(false);
#define mp make_pair
#define pb push_back
#define MOD 1000000007
#define sc(n) scanf("%lld" , &n);
#define Max 500005
using namespace std;
typedef vector<ll> VI;
VI v1 , v2;
ll A[Max], B[Max], C[Max];
ll Z[Max];
void clearZ(){
for(int i=0 ; i<Max ; i++)Z[i]=0;
}
void calculateZ(ll * arr , ll n)
{
int L = 0, R = 0;
for (int i = 1; i < n; i++){
if (i > R){
L = R = i;
while (R < n && arr[R-L] == arr[R]) R++;
Z[i] = R-L; R--;
}
else{
int k = i-L;
if (Z[k] < R-i+1) Z[i] = Z[k];
else{
L = i;
while (R < n && arr[R-L] == arr[R]) R++;
Z[i] = R-L; R--;
}
}
}
}
void calcZ(ll * A , ll * B , ll size1 , ll size2 , ll first){
ll size = size1+size2+1;
ll arr[size];
int i;
for(i=0 ; i<size2 ; i++){
arr[i]=B[i];
}
arr[i++]=-1;
for(int j=0;j<size1 ; j++)
{
arr[i++]=A[j];
}
//calculating the Z part
clearZ();
calculateZ(arr , size);
for (int i = 0; i < size; ++i)
{
if (Z[i] == size2)
{
if(first){
v1.pb(i-size2-1);
}
else{
v2.pb(i-size2-1);
}
}
}
}
int main()
{
iosbase
ll N,K,L;
cin>>N>>K>>L;
for(int i=0 ; i<N ; i++){
cin>>A[i];
}
for(int i=0 ; i<K ; i++){
cin>>B[i];
}
for(int i=0 ; i<L ; i++){
cin>>C[i];
}
calcZ(A,C,N,L,1);
calcZ(A,B,N,K,0);
ll ans=0;
for(int i=0 ; i<v1.size() ; i++)
{
ll val = v1[i];
VI::iterator it;
it = lower_bound(v2.begin() , v2.end() , val);
ll ind = it-v2.begin();
if(ind == 0 && v2[0] >= v1[i])
{
ans += (v2.size() - ind);
}
else
{
ans += (v2.size() - ind);
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGluZiAxZTE4CiNkZWZpbmUgaW9zYmFzZSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHNjKG4pIHNjYW5mKCIlbGxkIiAsICZuKTsKI2RlZmluZSBNYXggNTAwMDA1CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHZlY3RvcjxsbD4gVkk7ClZJIHYxICwgdjI7CmxsIEFbTWF4XSwgQltNYXhdLCBDW01heF07CmxsIFpbTWF4XTsKCnZvaWQgY2xlYXJaKCl7Cglmb3IoaW50IGk9MCA7IGk8TWF4IDsgaSsrKVpbaV09MDsKfQoKCnZvaWQgY2FsY3VsYXRlWihsbCAqIGFyciAsIGxsIG4pCnsKCWludCBMID0gMCwgUiA9IDA7Cglmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKyl7CgkJaWYgKGkgPiBSKXsKCgkJCUwgPSBSID0gaTsKCQkJd2hpbGUgKFIgPCBuICYmIGFycltSLUxdID09IGFycltSXSkgUisrOwoJCQlaW2ldID0gUi1MOyBSLS07CgkJfQoJCWVsc2V7CgoJCQlpbnQgayA9IGktTDsKCQkJaWYgKFpba10gPCBSLWkrMSkgWltpXSA9IFpba107CgkJCWVsc2V7CgkJCQlMID0gaTsKCQkJCXdoaWxlIChSIDwgbiAmJiBhcnJbUi1MXSA9PSBhcnJbUl0pIFIrKzsKCQkJCVpbaV0gPSBSLUw7IFItLTsKCQkJfQoJCX0KCX0KfQoKdm9pZCBjYWxjWihsbCAqIEEgLCBsbCAqIEIgLCBsbCBzaXplMSAsIGxsIHNpemUyICwgbGwgZmlyc3QpewoKCWxsIHNpemUgPSBzaXplMStzaXplMisxOwoJbGwgYXJyW3NpemVdOwoJaW50IGk7Cglmb3IoaT0wIDsgaTxzaXplMiA7IGkrKyl7CgkJYXJyW2ldPUJbaV07Cgl9CglhcnJbaSsrXT0tMTsKCWZvcihpbnQgaj0wO2o8c2l6ZTEgOyBqKyspCgl7CgkJYXJyW2krK109QVtqXTsKCX0KCgkvL2NhbGN1bGF0aW5nIHRoZSBaIHBhcnQKCWNsZWFyWigpOwoJY2FsY3VsYXRlWihhcnIgLCBzaXplKTsKCglmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkKCXsKCQlpZiAoWltpXSA9PSBzaXplMikKCQl7CgkJCWlmKGZpcnN0KXsKCQkJCXYxLnBiKGktc2l6ZTItMSk7CgkJCX0KCQkJZWxzZXsKCQkJCXYyLnBiKGktc2l6ZTItMSk7CgkJCX0KCQl9Cgl9CgoKfQoKCmludCBtYWluKCkKewoJaW9zYmFzZQoJbGwgTixLLEw7CgljaW4+Pk4+Pks+Pkw7Cglmb3IoaW50IGk9MCA7IGk8TiA7IGkrKyl7CgkJY2luPj5BW2ldOwoJfQoJZm9yKGludCBpPTAgOyBpPEsgOyBpKyspewoJCWNpbj4+QltpXTsKCX0KCWZvcihpbnQgaT0wIDsgaTxMIDsgaSsrKXsKCQljaW4+PkNbaV07Cgl9CgoJY2FsY1ooQSxDLE4sTCwxKTsKCWNhbGNaKEEsQixOLEssMCk7CgoJbGwgYW5zPTA7CgoJZm9yKGludCBpPTAgOyBpPHYxLnNpemUoKSA7IGkrKykKCXsKCQlsbCB2YWwgPSB2MVtpXTsKCQlWSTo6aXRlcmF0b3IgaXQ7CgoJCWl0ID0gbG93ZXJfYm91bmQodjIuYmVnaW4oKSAsIHYyLmVuZCgpICwgdmFsKTsKCQlsbCBpbmQgPSBpdC12Mi5iZWdpbigpOwoKCQlpZihpbmQgPT0gMCAmJiB2MlswXSA+PSB2MVtpXSkKCQl7CgkJCWFucyArPSAodjIuc2l6ZSgpIC0gaW5kKTsKCQl9CgkJZWxzZQoJCXsKCQkJYW5zICs9ICh2Mi5zaXplKCkgLSBpbmQpOwoJCX0KCX0KCWNvdXQ8PGFuczw8ZW5kbDsKCgoJcmV0dXJuIDA7Cn0=