#!/usr/bin/env python3
# CANONICAL solution

C=10**4
n, k = map(int, input().split())
cc = [[] for _ in range(C+1)]
cc2= [[] for _ in range(C+1)]
for i in range(1, n+1):
    a, b = map(int, input().split())
    if a > b: cc2[b].append(i)
    if a == b: cc[a].append(i)
    if a < b: cc2[a].append(i)

ans = [-1] * k
needed = [[] for _ in range(C+1)]

maxi = -1
for i, c in enumerate(map(int, input().split())):
    needed[c].append(i)
    maxi = max(maxi, i)
    assert i < k
    assert c > 0
assert maxi == k-1

for c in range(1, C+1):
    while len(needed[c]) > 0:
        assert ans[needed[c][-1]] == -1
        if len(cc[c]) > 0: ans[needed[c].pop()] = cc[c].pop()
        elif len(cc2[c-1]) > 0: ans[needed[c].pop()] = cc2[c-1].pop()
        elif len(cc2[c]) > 0: ans[needed[c].pop()] = cc2[c].pop()
        else:
            print('impossible')
            exit()

if len(ans) > 0: print(*reversed(ans), sep='\n')
