#include<bits/stdc++.h>
using namespace std;
const int maxn = 200 + 10;
int a[maxn], b[maxn];
int n, na, nb;
int c[maxn];
int cnt = 0;
int ans1 = 0, ans2 = 0, ansa = 0, ansb = 0;
int gcd(int a, int b)
{
if(b == 0)
return a;
return gcd(b, a % b);
}
int lcd(int a, int b)
{
return a * b / gcd(a, b);
}
int main()
{
scanf("%d%d%d", &n, &na, &nb);
for(int i = 0; i < na; i++)
scanf("%d", &a[i]);
for(int i = 0; i < nb; i++)
scanf("%d", &b[i]);
int ab = lcd(na, nb);
for(int i = 0; i < ab; i++)
{
int x, y;
x = y = i;
if(x > na - 1)
x %= na;
if(y > nb - 1)
y %= nb - 1;
if(a[x] == b[y])
{
c[cnt] = 0;
cnt++;
continue;
}
if(a[x] == 0 && (b[y] == 2 || b[y] == 3))
{
c[cnt] = 1;
ansa++;
cnt ++;
continue;
}
if(a[x] == 1 && (b[y] == 3 || b[y] == 0))
{
c[cnt] = 1;
ansa++;
cnt++;
continue;
}
if(a[x] == 2 && (b[y] == 1 || b[y] == 4))
{
c[cnt] = 1;
ansa++;
cnt++;
continue;
}
if(a[x] == 3 && (b[y] == 2 || b[y] == 4))
{
c[cnt] = 1;
ansa++;
cnt++;
continue;
}
if(a[x] == 4 && (b[y] == 0 || b[y] == 1))
{
c[cnt] = 1;
ansa++;
cnt++;
continue;
}
else
{
c[cnt] = -1;
ansb++;;
cnt++;
continue;
}
}
if(n <= ab)
{
for(int i = 0; i < n; i++)
{
if(c[i] == 1)
ans1 ++;
else
ans2++;
}
printf("%d %d", ans1, ans2);
return 0;
}
if(n > ab)
{
int zs, ys;
zs = n / ab;
ys = n % ab;
for(int i = 0; i < ys; i++)
{
if(c[i] == 1)
ans1++;
else
ans2++;
}
printf("%d %d", ansa * zs + ans1, ansb * zs + ans2);
return 0;
}
}