#include <bits/stdc++.h>
#define SS ios_base::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
#define int long long
#define all(v) v.begin(),v.end()
using namespace std;
const int N = 2e5 + 1, MX = 40, inf = 1e18, mod = 1e9 + 7;
struct node{
int mx, cnt;
};
node t[4 * N];
int add[4 * N];
void push(int v, int tl, int tr){
t[v].mx += add[v];
if(tl < tr){
add[v * 2] += add[v];
add[v * 2 + 1] += add[v];
}
add[v] = 0;
}
node f(node a, node b){
node res;
if(a.mx > b.mx) res = a;
else if(b.mx > a.mx) res = b;
else if(a.mx == b.mx){
res = a;
res.cnt += b.cnt;
}
return res;
}
void build(int v, int tl, int tr){
if(tl == tr){
t[v] = {0, 1};
return;
}
int mid = (tl + tr) / 2;
build(v * 2, tl, mid);
build(v * 2 + 1, mid + 1, tr);
t[v] = f(t[v * 2], t[v * 2 + 1]);
}
void upd(int v, int tl, int tr, int l, int r, int x){
push(v, tl, tr);
if(tl > r || l > tr) return;
if(tl >= l && r >= tr){
add[v] += x;
push(v, tl, tr);
return;
}
int mid = (tl + tr) / 2;
upd(v * 2, tl, mid, l, r, x);
upd(v * 2 + 1, mid + 1, tr, l, r, x);
t[v] = f(t[v * 2], t[v * 2 + 1]);
}
node get(int v, int tl, int tr, int l, int r){
push(v, tl, tr);
if(tl > r || l > tr) return {0, 0};
if(tl >= l && r >= tr) return t[v];
int mid = (tl + tr) / 2;
return f(get(v * 2, tl, mid, l, r), get(v * 2 + 1, mid + 1, tr, l, r));
}
void solve(){
int n, k, q;
cin >> n >> k >> q;
int a[n + 1], b[n + 1];
int p[n + 1];
build(1, 1, n);
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
cin >> b[i];
p[b[i]] = i;
}
vector<int> g[n + 1];
int mx = 0, cnt = 0;
for(int i = 1; i <= n; i++){
for(int x : g[i]){
upd(1, 1, n, p[x], min(n, p[x] + k - 1), -1);
}
upd(1, 1, n, p[a[i]], min(p[a[i]] + k - 1, n), 1);
if(i + k <= n) g[i + k].push_back(a[i]);
if(i < k) continue;
node res = get(1, 1, n, k, n);
if(res.mx > mx){
mx = res.mx;
cnt = res.cnt;
}
else if(res.mx == mx) cnt += res.cnt;
// cout << res.mx << ' ' << res.cnt << '\n';
}
cout << mx << ' ' << cnt << '\n';
}
signed main(){
SS
// freopen("trains.in", "r", stdin);
// freopen("trains.out", "w", stdout);
int t = 1;
// cin >> t;
while(t--){
solve();
}
}