На даний момент існує відомих науці видів вірусів. Кожен з цих вірусів має унікальну молекулярну масу, і їх можна позначити як K_1, K_2, \ldots, K_n у порядку зростання їх молекулярних мас.
Останнім часом Рафаель працює в лабораторії над виявленням нових видів вірусів. До лабораторії надійшло молекул певних вірусів. Рафаель проводить експериментів з цими вірусами. В результаті кожного експерименту, порівнюючи дві молекули вірусів, Рафаель визначає, чи вони рівні, чи одна з них має більшу молекулярну масу.
Допоможіть Рафаелю створити програму, яка на основі результатів експериментів визначить, до якого виду вірусів належить кожна з молекул. Якщо за наявними даними неможливо точно визначити вид молекули, виведіть символ '?' для цієї молекули.
У першому рядку задано три цілі числа (2 \le n \le 3 \cdot 10^5), і (1 \le m, v \le 3 \cdot 10^5). На наступних рядках наведено результати експериментів у форматі . Тут і — це цілі числа, що представляють порядкові номери порівнюваних молекул, а — один із символів '=', '<', '>'. Між числами , і символом немає пробілів. Гарантується, що серед експериментів немає суперечностей.
Виведіть рядків. У -му рядку виведіть один із символів (K_1, K_2, \ldots, K_n), якщо можна точно визначити вид -ї молекули, інакше символ '?'.
Приклад 1
Приклад 2