#include<stdio.h>
#include<string.h>
int a[10000100],b[10000100];
int next[10000100];
int n,k,m;
void getnext()
{
int l,i,j;
l=m;
i=0;j=-1;
next[0]=-1;
while(i<l)
{
if(j==-1||b[i]==b[j])
{
i++;
j++;
if(b[j]==b[i])
next[i]=next[j];
else
next[i]=j;
}
else
j=next[j];
}
}
void kmp()
{
int i,j,l1,l2,count,k;
l1=n;
l2=m;
i=0;j=0;
count=0;
while(i<l1)
{
if(j==-1||a[i]==b[j])
{
i++;
j++;
}
else
{
j=next[j];
}
if(j==l2)
{
count++;
if(count==1)
{
k=i;
}
j=0;
}
}
if(count==1)
{
printf("%d %d\n",k-m+1,k);
}
else
{
printf("-1\n");
}
}
int main()
{
while(~scanf("%d",&n))
{
for(k=0;k<n;k++)
{
scanf("%d",&a[k]);
}
scanf("%d",&m);
for(k=0;k<m;k++)
{
scanf("%d",&b[k]);
}
getnext();
kmp();
}
return 0;
}
#include<string.h>
int a[10000100],b[10000100];
int next[10000100];
int n,k,m;
void getnext()
{
int l,i,j;
l=m;
i=0;j=-1;
next[0]=-1;
while(i<l)
{
if(j==-1||b[i]==b[j])
{
i++;
j++;
if(b[j]==b[i])
next[i]=next[j];
else
next[i]=j;
}
else
j=next[j];
}
}
void kmp()
{
int i,j,l1,l2,count,k;
l1=n;
l2=m;
i=0;j=0;
count=0;
while(i<l1)
{
if(j==-1||a[i]==b[j])
{
i++;
j++;
}
else
{
j=next[j];
}
if(j==l2)
{
count++;
if(count==1)
{
k=i;
}
j=0;
}
}
if(count==1)
{
printf("%d %d\n",k-m+1,k);
}
else
{
printf("-1\n");
}
}
int main()
{
while(~scanf("%d",&n))
{
for(k=0;k<n;k++)
{
scanf("%d",&a[k]);
}
scanf("%d",&m);
for(k=0;k<m;k++)
{
scanf("%d",&b[k]);
}
getnext();
kmp();
}
return 0;
}