Universal Cup Judging System

Universal Cup

実行時間制限: 3 s メモリ制限: 2048 MB 満点: 100 難易度: [表示] インタラクティブ ハック可能 ✓
統計

Dette er en interaktiv oppgave.

Little Cyan Fish har en enkel urettet graf med $n$ noder nummerert fra $1$ til $n$ og $m$ kanter nummerert fra $1$ til $m$. Til å begynne med er fargen til node $i$ lik $i$.

To spillere, A og B, spiller et spill som består av $m$ runder. I hver runde utfører spillerne følgende handlinger i rekkefølge:

  • Spiller A velger en kant $(u, v)$ som ikke har blitt valgt i noen tidligere runde.
  • Spiller B velger ett endepunkt på denne kanten og endrer fargen til den nåværende fargen til det andre endepunktet.
problem_22885_1d373c463b7457fcdd79e7710dbf7e58.png

Etter alle $m$ rundene vinner Spiller B hvis alle nodene har samme farge. Ellers vinner Spiller A.

Little Cyan Fish vil at du skal avgjøre hvilken spiller som kan garantere seier uavhengig av motspillerens trekk. Spill deretter som denne spilleren mot ham og vinn spillet.

Inndata

Det er flere testtilfeller. Den første linjen i inndataene inneholder et enkelt heltall $T$ ($1 \le T \le 10^4$), som angir antall testtilfeller.

For hvert testtilfelle inneholder den første linjen to heltall $n$ og $m$ ($2 \le n \le 10^5$, $1 \le m \le 10^5$), som angir henholdsvis antall noder og antall kanter.

De neste $m$ linjene beskriver kantene. Den $i$-te av disse linjene inneholder to heltall $u_i$ og $v_i$ ($1 \le u_i, v_i \le n$, $u_i \ne v_i$), som betyr at kant $i$ forbinder nodene $u_i$ og $v_i$.

Det er garantert at grafen ikke har løkker eller parallelle kanter. Grafen kan være usammenhengende.

Det er garantert at summen av $n$ over alle testtilfeller ikke overstiger $10^5$, og at summen av $m$ over alle testtilfeller ikke overstiger $10^5$.

Etter å ha lest inn en graf, må du fullføre interaksjonen for dette testtilfellet før du leser inn neste graf.

Interaksjonsprotokoll

For å velge rollen din, skriv ut en linje som inneholder A eller B. Skriv ut A hvis Spiller A kan garantere seier, eller B hvis Spiller B kan garantere seier. Little Cyan Fish vil spille som den andre spilleren.

Spill deretter nøyaktig $m$ runder som følger.

  • Hvis du spiller som A, skriv ut en linje som inneholder et enkelt heltall $e$ ($1 \le e \le m$), indeksen til en kant som ikke har blitt valgt i noen tidligere runde. Som svar vil du få et enkelt heltall $x$ på en linje. Node $x$ er et endepunkt på kant $e$, og fargen dens endres til den nåværende fargen til det andre endepunktet.
  • Hvis du spiller som B, les inn et enkelt heltall $e$ ($1 \le e \le m$) på en linje, indeksen til en kant som ikke har blitt valgt i noen tidligere runde. Skriv ut en linje som inneholder et enkelt heltall $x$, et endepunkt på kant $e$. Fargen til node $x$ endres til den nåværende fargen til det andre endepunktet.

Etter alle $m$ rundene, les inn et enkelt heltall. Dette heltallet er 1 hvis du valgte riktig rolle og vant spillet. Etter å ha mottatt 1, fortsett med neste testtilfelle. Etter det siste testtilfellet skal programmet ditt avsluttes.

Interaktoren vil sende -1 hvis du velger feil rolle, gjør et ugyldig trekk eller taper et spill. Hvis du mottar -1 på noe tidspunkt, skal programmet ditt avsluttes umiddelbart.

Etter at du har skrevet ut rollen din eller et trekk, ikke glem å skrive ut et linjeskifttegn og tømme utdatastrømmen (flush).

Testverktøy: Et testverktøy er tilgjengelig for å hjelpe deltakerne med å utvikle og teste løsningene sine. Du kan laste ned dette verktøyet fra vedleggene. Kjør verktøyet med valget -h for å vise bruksinstruksjoner. Testverktøyet dekker bare noen av testscenariene og funksjonene som støttes av den offisielle interaktoren.

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

De to spillene i eksempelet er vist nedenfor. I hvert steg velger A den uthevede kanten, og B farger om den innringede noden. Stiplede kanter ble valgt tidligere.

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.