N, M = map(int, input().split()) ordinary_clouds = [list(map(int, input().split())) for _ in range(N)] rare_clouds = [list(map(int, input().split())) for _ in range(M)] K = int(input()) P = list(map(int, input().split())) ordinary_clouds.sort(key=lambda x: x[0]) for i in range(N - 1): if ordinary_clouds[i][1] >= ordinary_clouds[i + 1][0]: print(*([1] * K)) exit() rare_clouds.sort(key=lambda x: x[0]) for i in range(M - 1): if rare_clouds[i][1] >= rare_clouds[i + 1][0]: print(*([1] * K)) exit() ans = [0 for i in range(K)] for i in range(K): for j in range(M): k_range = [-1, N] while k_range[1] - k_range[0] > 1: k = (k_range[0] + k_range[1]) // 2 if rare_clouds[j][0] + ordinary_clouds[k][0] <= P[i] * 2: k_range[0] = k else: k_range[1] = k k = k_range[0] if k != -1: if rare_clouds[j][1] + ordinary_clouds[k][1] >= P[i] * 2: ans[i] = 1 print(*ans)