import java.util.Scanner;
public class printallnodesatkdistance {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int n = scn.nextInt();
int[] preorder = new int[n];
int[] inorder = new int[n];
for (int i = 0; i < n; i++) {
preorder[i] = scn.nextInt();
}
for (int j = 0; j < n; j++) {
inorder[j] = scn.nextInt();
}
int t = scn.nextInt();
for (int a = 0; a <t; a++) {
int data = scn.nextInt();
int k = scn.nextInt();
printnodesatkdistance(inorder, data, k);
}
}
private static void printnodesatkdistance(int[] inorder, int data, int k) {
for (int i=0;i<inorder.length;i++) {
System.out.println(inorder[i]);
}
int idx=binarysearch(inorder,data);
System.out.print(inorder[idx - k] + " ");
System.out.print(inorder[idx + k]);
}
public static int binarysearch(int [] arr, int item) {
int lo=0;
int hi=arr.length-1;
while (lo<=hi) {
int mid=(lo+hi)/2;
if (arr[mid]<item) {
lo=mid+1;
}
else if (arr[mid]>item) {
hi=mid-1;
}
else {
return mid;
}
}
return -1;
}
}