아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

책임 공방

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

요약
앨리스와 밥의 잘못을 꼭짓점으로 하는 이분 그래프에서 직전에 주장한 잘못과 연결된 아직 주장되지 않은 잘못을 번갈아 주장하고, 둘 수 없는 사람이 지는 게임의 승자를 구한다.
난이도

보통10점 중 7점

유형
게임 이론, 그래프, 동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

Alice와 Bob은 파벌 싸움 중이다. 최근 두 사람이 함께 진행하던 프로젝트에서 크고 심각한 문제가 터졌다. 이 문제는 Alice와 Bob 양쪽의 여러 잘못이 얽혀서 발생한 것이며, 그 잘못들은 서로 밀접하게 연관되어 있다.

Alice와 Bob은 서로에게 책임을 돌리기 시작했다. 먼저 Alice는 Bob의 잘못 때문에 일이 생겼다고 주장했다. 그러자 Bob은 자신의 잘못은 Alice의 잘못에서 비롯되었다고 맞섰다. 곧이어 Alice는 Bob의 또 다른 잘못이 없었다면 자신의 잘못은 일어나지 않았을 것이라고 말했다. 이런 식으로 끝없이 이어졌다. 그야말로 책임 공방이었다. 그래도 두 사람에게는 자존심이 있었다. 한 번 주장에 사용한 잘못을 다시 꺼내지는 않았다.

이 상황을 게임으로 살펴보자.

Alice와 Bob에게는 여러 개의 잘못이 있다. Alice의 잘못과 Bob의 잘못 중 일부 쌍은 직접적인 관계가 있다. 이 관계는 양방향이다. 어떤 잘못 X가 다른 잘못 Y 때문에 생겼다면, 두 사람은 "X는 Y 때문이었다." 또는 "X가 있었더라도 Y가 없었다면 문제는 피할 수 있었다."라고 말할 수 있다. 둘 다는 아니다. 같은 잘못을 주장에 다시 꺼내지 않기 때문이다.

Alice와 Bob은 번갈아 차례를 가진다. Alice가 먼저 Bob의 잘못 아무거나 하나를 주장하며 시작한다. 그러면 Bob은 방금 주장된 잘못과 직접 관계가 있는 Alice의 잘못을 골라 주장한다. 이후 각 차례에는 직전 차례에서 주장된 잘못과 직접 관계가 있는 상대편의 잘못을 하나 고른다. 아직 주장되지 않은 잘못이 없으면 그 사람이 이 게임에서 진다.

그런데 당신은 Alice와 Bob 양쪽 밑에서 일해 왔다. 모든 잘못과 관계를 알고 있다. 두 사람이 항상 최적의 전략을 쓴다고 가정할 때 누가 이기는지 판별하는 프로그램을 작성하시오. 이기는 편을 고를 수 있다면, 당신은 터진 문제의 책임을 지지 않아도 될 것이다.

입력

각 입력에는 테스트 케이스가 하나씩 들어 있다. 입력의 첫 줄에는 Alice와 Bob의 잘못 개수를 나타내는 두 정수 N과 M(0 ≤ N, M ≤ 500)이 주어진다. Alice의 잘못은 1번부터 N번까지, Bob의 잘못은 1번부터 M번까지 번호가 붙는다. 이어서 N개의 줄이 잘못들 사이의 관계를 설명한다. i번째 줄은 음이 아닌 정수 Ki(0 ≤ Ki ≤ M)로 시작한다. 그 뒤에 Ki개의 양의 정수가 오는데, j번째 수 bi,j(1 ≤ bi,j ≤ M)는 i번째 Alice의 잘못과 bi,j번째 Bob의 잘못 사이에 직접 관계가 있음을 나타낸다. 1 ≤ i ≤ N이고 1 ≤ j < j' ≤ Ki인 모든 i, j, j'에 대해 bi,j != bi,j'임이 보장된다.

출력

책임 공방의 승자를 나타내는 "Alice" 또는 "Bob"을 출력한다.

예제2

  1. 예제 1

    입력
    1 1
    1 1
    
    예상 출력
    Bob
    
  2. 예제 2

    입력
    3 3
    3 1 2 3
    1 3
    1 3
    
    예상 출력
    Alice