#include <stdio.h>
#include <stdlib.h>
void prefix_table(int prefix[], int pattern[], int n)
{
prefix[0] = -1;
int len = -1, i = 0;
while(i<n)
{
if(pattern[i] == pattern[len]||len == -1)
{
len++;
i++;
prefix[i] = len;
}else
{
len = prefix[len];
}
}
}
//void prefix_table(int prefix[], int pattern[], int n)
//{
// prefix[0] = 0;
// int len = 0, i = 1;
// while(i<n)
// {
// if(pattern[i] == pattern[len])
// {
// len++;
// prefix[i] = len;
// i++;
// }else
// {
// if(len>0)
// {
// len = prefix[len - 1];
// }else
// {
// prefix[i] = len;
// i++;
// }
// }
// }
//}
//void move_prefix_table(int prefix[], int n)
//{
// int i;
// for(i = n-1 ; i > 0; i--)
// {
// prefix[i] = prefix[i-1];
// }
// prefix[0] = -1;
//}
int kmp_serch(int a[], int b[], int n, int m)
{
int *prefix = malloc(sizeof(int)*n);
prefix_table(prefix, b, m);
//move_prefix_table(prefix, m);
int i=0, j = 0;
while(i < n&& j < m)
{
if(a[i]==b[j])
{
i++;j++;
}else
{
j = prefix[j];
if(j = -1)
{
i++;
j++;
}
}
}
if(j==m)
return i-j+1;
else
return -1;
}
int a[10000010];
int b[10000010];
int main()
{
int n, m, i;
scanf("%d", &n);
for( i = 0 ; i < n; i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &m);
for( i = 0; i < m; i++)
{
scanf("%d", &b[i]);
}
int k = kmp_serch(a, b, n, m);
if( k != -1)
{
int j = kmp_serch(a+k, b, n, m);
if(j==-1)
{
printf("%d %d\n", k, k+m-1);
}else
printf("-1\n");
}
else
printf("-1\n");
return 0;
}