//rotating array k times
#include <stdio.h>
#include <stdlib.h>
 
//reverse part of an array
void reverse_array(int* arr, int start, int end) {
    for(int i = 0; i < ((end - start) + 1)/2; i++) {
        int temp = arr[start + i];
        arr[start + i] = arr[end - i];
        arr[end - i] = temp;
    }
}

//function to rotate the array
void rotateArray(int* arr, int size, int k) {
    int num_of_rotations = k % size;
    
    if (num_of_rotations == 0) {
        return;
    }
    
    //reversing
    reverse_array(arr, 0, size - 1);
    reverse_array(arr, 0, num_of_rotations - 1);
    reverse_array(arr, num_of_rotations, size - 1);
}
 
int main(void) {
	int size = 0;
	scanf("%d", &size);

        //k stores required number of rotations
	int k = 0;
	scanf("%d", &k);

        //q stores number of queries
        int q = 0;
        scanf("%d", &q);
    
	int* arr = (int*) malloc(size * sizeof(int));
	if(arr == NULL) {
		printf("memory allocation failed!");
		exit(1);
	}
 
	//reading values of array
	for(int i = 0; i < size; i++) {
		scanf("%d", &arr[i]);
	}

	rotateArray(arr, size, k);
 
        //printing answer to given queries
	for(int i = 0; i < q; i++) {
            int query = 0;
            scanf("%d", &query);
        
            printf("%d\n", arr[query]);
	}
 
	return 0;
}