Universal Cup Judging System

Universal Cup

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show] Interactive Hackable ✓
Statistics

Бұл — интерактивті есеп.

Little Cyan Fish-те $1$-ден $n$-ге дейін нөмірленген $n$ төбесі және $1$-ден $m$-ге дейін нөмірленген $m$ қабырғасы бар қарапайым бағытталмаған граф бар. Бастапқыда $i$ төбесінің түсі $i$-ге тең.

Екі ойыншы, A және B, $m$ раундтан тұратын ойын ойнайды. Әр раундта ойыншылар келесі әрекеттерді ретімен орындайды:

  • A ойыншысы алдыңғы раундтардың ешқайсысында таңдалмаған $(u, v)$ қабырғасын таңдайды.
  • B ойыншысы осы қабырғаның бір ұшын таңдап, оның түсін екінші ұшының ағымдағы түсіне өзгертеді.
problem_22885_1d373c463b7457fcdd79e7710dbf7e58.png

Барлық $m$ раундтан кейін, егер барлық төбелердің түсі бірдей болса, B ойыншысы жеңеді. Әйтпесе, A ойыншысы жеңеді.

Little Cyan Fish сізден екінші ойыншының жүрістеріне қарамастан қай ойыншы жеңіске кепілдік бере алатынын анықтауыңызды қалайды. Содан кейін сол ойыншы ретінде оған қарсы ойнап, ойында жеңіске жетіңіз.

Кіріс деректер

Бірнеше тест жиынтығы берілген. Кіріс деректердің бірінші жолында тест жиынтықтарының санын білдіретін бір бүтін сан $T$ ($1 \le T \le 10^4$) берілген.

Әрбір тест жиынтығы үшін бірінші жолда сәйкесінше төбелер саны мен қабырғалар санын білдіретін екі бүтін сан $n$ және $m$ ($2 \le n \le 10^5$, $1 \le m \le 10^5$) берілген.

Келесі $m$ жол қабырғаларды сипаттайды. Осы жолдардың $i$-шісінде екі бүтін сан $u_i$ және $v_i$ ($1 \le u_i, v_i \le n$, $u_i \ne v_i$) берілген, бұл $i$ қабырғасы $u_i$ және $v_i$ төбелерін қосатынын білдіреді.

Графта ілмектер немесе еселі қабырғалар жоқ екеніне кепілдік беріледі. Граф байланысқан болмауы мүмкін.

Барлық тест жиынтықтары бойынша $n$ мәндерінің қосындысы $10^5$-нен аспайтынына, ал барлық тест жиынтықтары бойынша $m$ мәндерінің қосындысы $10^5$-нен аспайтынына кепілдік беріледі.

Графты оқығаннан кейін, келесі графты оқымас бұрын сол тест жиынтығы үшін өзара әрекеттесуді аяқтаңыз.

Өзара әрекеттесу хаттамасы

Өз рөліңізді таңдау үшін A немесе B бар жолды шығарыңыз. Егер A ойыншысы жеңіске кепілдік бере алса, A шығарыңыз, ал егер B ойыншысы жеңіске кепілдік бере алса, B шығарыңыз. Little Cyan Fish екінші ойыншы ретінде ойнайды.

Содан кейін келесідей дәл $m$ раунд ойнаңыз.

  • Егер сіз A ретінде ойнасаңыз, алдыңғы раундтардың ешқайсысында таңдалмаған қабырғаның индексі болатын бір бүтін сан $e$ ($1 \le e \le m$) бар жолды шығарыңыз. Жауап ретінде сіз бір жолда бір бүтін сан $x$ аласыз. $x$ төбесі — $e$ қабырғасының бір ұшы, және оның түсі екінші ұшының ағымдағы түсіне өзгереді.
  • Егер сіз B ретінде ойнасаңыз, бір жолдан алдыңғы раундтардың ешқайсысында таңдалмаған қабырғаның индексі болатын бір бүтін сан $e$ ($1 \le e \le m$) оқыңыз. $e$ қабырғасының бір ұшы болатын бір бүтін сан $x$ бар жолды шығарыңыз. $x$ төбесінің түсі екінші ұшының ағымдағы түсіне өзгереді.

Барлық $m$ раундтан кейін бір бүтін санды оқыңыз. Егер сіз дұрыс рөлді таңдап, ойында жеңіске жетсеңіз, бұл бүтін сан 1 болады. 1 алғаннан кейін келесі тест жиынтығына көшіңіз. Соңғы тест жиынтығынан кейін бағдарламаңыз жұмысын аяқтауы тиіс.

Егер сіз қате рөл таңдасаңыз, жарамсыз жүріс жасасаңыз немесе ойында жеңіліп қалсаңыз, интерактор -1 жібереді. Егер кез келген сәтте -1 алсаңыз, бағдарламаңыз бірден жұмысын аяқтауы тиіс.

Өз рөліңізді немесе жүрісіңізді шығарғаннан кейін жаңа жол таңбасын шығаруды және шығыс ағынын тазартуды (flush) ұмытпаңыз.

Тестілеу құралы: Қатысушыларға өз шешімдерін әзірлеуге және тексеруге көмектесу үшін тестілеу құралы ұсынылады. Бұл құралды тіркемелерден жүктеп алуға болады. Пайдалану нұсқауларын көрсету үшін құралды -h опциясымен іске қосыңыз. Тестілеу құралы ресми интерактор қолдайтын тестілеу сценарийлері мен мүмкіндіктерінің бір бөлігін ғана қамтиды.

Examples

Input 1

2
3 2
2 3
1 2

1

2

1
4 3
1 2
2 3
3 4


2

4

3
1

Output 1




B

3

1






A
1

3

2

Note

Мысалдағы екі ойын төменде көрсетілген. Әр қадамда A ерекшеленген қабырғаны таңдайды, ал B қоршалған төбені қайта бояйды. Үзік сызықты қабырғалар ертерек таңдалған.

problem_22885_e7d00f1c7c737637218f9ce0216ec025.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.