import sys
with sys.stdin as f:
ncases = int(f.readline())
for caseix in range(ncases):
try:
nflavours = int(f.readline())
nclients = int(f.readline())
preferences = []
preferences_count = []
preferences_index = [0 for _x in xrange(nclients)]
flavour_match = [[] for _x in xrange(nflavours)]
flavour = [0 for _x in xrange(nflavours)]
malted = []
for clientix in range(nclients):
data = f.readline().strip().split(' ')
preferences_count.append(int(data[0]))
lst = data[1:]
l = [int(lst[ix]) - 1 for ix in range(len(lst)) if ix%2==0]
s = [int(lst[ix]) for ix in range(len(lst)) if ix%2==1]
preference = list(zip(l,s))
preference.sort(key=lambda p: p[1])
preferences.append(preference)
if len(preference) == 1 and preference[0][1] == 1:
malted.append(preference[0][0])
else:
flavour_match[preference[0][0]].append(clientix)
while len(malted) != 0:
new_malted = []
for x in malted:
if flavour[x] == 1:
continue
flavour[x] = 1
for client in flavour_match[x]:
preferences_index[client] = preferences_index[client] + 1
while preferences_index[client] < preferences_count[client]:
if preferences[client][preferences_index[client]][1] == 1:
new_malted.append(preferences[client][preferences_index[client]][0])
break
elif flavour[preferences[client][preferences_index[client]][0]] == 1:
preferences_index[client] = preferences_index[client] + 1
continue
flavour_match[preferences[client][preferences_index[client]][0]].append(client)
break
if preferences_index[client] >= preferences_count[client]:
raise Exception
malted = new_malted
except:
print 'Case #{}: IMPOSSIBLE'.format(caseix +1)
else:
print 'Case #{}:'.format(caseix +1),
for x in flavour:
print x,
print ""