S = Array.new(21) N = gets.to_i N.times do t, *u = gets.split t = t.to_i if t == 0 n = u.shift.to_i m = u.shift.to_i w = u.each_with_object(Hash.new(0)){|f,w_| w_[f] += 1 } S[n] = w elsif t == 1 m = u.shift i = (1 .. 20).find{|i_| S[i_] && S[i_][m] > 0 } if i S[i][m] -= 1 puts i else puts -1 end else n = u.first.to_i S[n] = nil end end