만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Moorbles

시간 제한2초메모리 제한1024 MB

요약
Elsie가 구슬 N개로 M턴을 버틸 수 있도록 사전순으로 가장 작은 Even/Odd 추측 순서를 구하고, 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 게임 이론, 그리디
정답자
아직 제출이 없습니다

문제

Bessie와 Elsie는 Moorbles 게임을 한다. 게임 규칙은 다음과 같다. 두 사람은 각자 일정한 수의 구슬을 가지고 시작한다. Bessie는 자신의 구슬 중 AA개를 발굽에 쥐고 내밀고, Elsie는 AA가 짝수(Even)인지 홀수(Odd)인지 맞힌다. 맞히면 Elsie는 Bessie에게서 AA개의 구슬을 얻는다. 틀리면 Elsie는 자신의 구슬 AA개를 Bessie에게 잃는다. Elsie가 가진 구슬이 AA개보다 적으면 가진 구슬을 모두 잃는다. 구슬을 모두 잃은 사람이 진다.

게임의 어느 시점에 Elsie는 NN (1≤N≤109)(1 \leq N \leq 10^9)개의 구슬을 가지고 있다. 그녀는 이기기 어렵다고 생각하지만, 지지 않으려고 게임을 한다. Bessie와 오래 지내 온 Elsie는 Bessie의 습관을 잘 알고 있다. 그녀는 턴 ii에 Bessie가 내놓을 수 있는 구슬 개수가 KK가지 (1≤K≤4)(1 \leq K \leq 4)뿐이라는 것을 안다. Bessie가 지루해져 게임을 그만두기 전까지의 턴은 MM개 (1≤M≤3⋅105)(1 \leq M \leq 3 \cdot 10^5)뿐이다. Bessie가 어떻게 두든 Elsie가 지지 않는, 사전순으로 가장 작은 턴 순서를 찾을 수 있는가?

입력

첫 줄에 테스트 케이스의 수를 나타내는 정수 TT (1≤T≤10)(1 \leq T \leq 10)가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.

첫 줄에 Elsie가 가진 구슬 수 NN, 턴 수 MM, Bessie가 둘 수 있는 수의 개수 KK가 공백으로 구분된 세 정수로 주어진다.

이어서 MM개의 줄이 주어진다. ii번째 줄에는 턴 ii에 Bessie가 둘 수 있는 구슬 개수 KK개가 공백으로 구분된 서로 다른 정수 ai,1ai,2…ai,Ka_{i,1} a_{i,2} \ldots a_{i,K} (1≤ai,j≤103)(1 \leq a_{i,j} \leq 10^3)로 주어진다.

모든 테스트 케이스에 걸친 MM의 합은 3⋅1053 \cdot 10^5 이하이다.

출력

각 테스트 케이스에 대해, Elsie가 지지 않음을 보장하는 사전순으로 가장 작은 수 순서를 출력한다. 그런 순서가 없으면 −1-1을 출력한다. 수 순서는 한 줄에 공백으로 구분된 MM개의 토큰으로 출력하며, 각 토큰은 "Even" 또는 "Odd"이다. "Even"이 "Odd"보다 사전순으로 작다는 점에 유의한다.

예제2

  1. 예제 1

    입력
    2
    10 3 2
    2 5
    1 3
    1 3
    10 3 3
    2 7 5
    8 3 4
    2 5 6
    
    예상 출력
    Even Even Odd
    -1
    
  2. 예제 2

    입력
    1
    20 8 2
    3 5
    3 5
    3 5
    3 5
    3 5
    3 5
    3 5
    3 5
    
    예상 출력
    Even Even Even Odd Even Odd Even Odd