쿠키런 킹덤

아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

내 친구 용감한 쿠키가 고민에 빠졌다고 한다. 용감한 쿠키는 요즘 쿠키런 킹덤이라는 게임을 하는데, 이 게임에서는 1,2,,N1, 2, \cdots, N의 번호로 구분되는 NN가지 종류의 자원 중 일부를 이용하여 건물을 짓는다. 자원은 이미 지어진 건물을 통하여 비용을 들이지 않고 무제한으로 만들 수 있으며, 각 자원을 만들 수 있는 건물은 정해져 있다. 자원을 만드는 데에는 00초가 걸리고, 건물을 짓는 데에는 11초가 걸리며, 동시에 여러 개의 자원을 만들거나 건물을 지을 수 있다. 그리고 각 건물로부터 필요한 자원과 생산할 수 있는 자원의 최대 가짓수는 NN3030 중 작은 값(= min(N,30)\text{min}(N, 30)) 이다. 

용감한 쿠키는 현재 지어진 건물로 정해진 시간 안에 건설할 수 있는 건물이 무엇이 있는지 궁금하다며 빨리 알고 싶다고 한다. 하지만 용감한 쿠키는 너무 바빠서 구할 수가 없다고 한다. 내 친구인 용감한 쿠키를 얼른 도와주자. 단, 이미 지어진 건물도 정해진 시간 안에 건설할 수 있는 건물로 간주한다.

입력

첫 번째 줄에 자원의 가짓수 NN과 이미 지어진 건물의 개수 MM, 제한 시간 TT가 주어진다. 건물의 가짓수는 자원의 가짓수와 같은 NN이다. 건물과 자원 모두 11부터 NN까지의 번호가 붙는다. 

  • 1 N 100,0001 \leq N \leq 100,000
  • 1 M N1 \leq M \leq N
  • 0T N0 \leq T \leq N

두 번째 줄에는 서로 다른 MM개의 번호가 주어지며, 이는 이미 지어진 건물의 번호이다.

이후 NN개의 줄에 건물마다 생산할 수 있는 자원의 가짓수와 그 자원 번호가 공백으로 나뉘어서 주어진다.

그 이후 N MN - M개의 줄에는 아직 지어지지 않은 건물의 번호와 건물마다 필요로 하는 자원의 가짓수, 그 자원의 번호가 공백으로 나뉘어서 주어진다.

이때, 각 건물에서 생산되는 자원과 건물을 지을 때 필요한 자원의 가짓수는 11 이상이다. 

각 건물로부터 필요한 자원과 생산할 수 있는 자원의 최대 가짓수는 NN3030을 넘지 않는다. 즉, min(N,30)\text{min}(N, 30) 이하이다.

출력

첫 번째 줄에는 TT초 내에 지을 수 있는 건물의 개수를 출력하고, 두 번째 줄에는 제한 시간 내에 지을 수 있는 모든 건물의 번호를 공백으로 구분하여 오름차순으로 출력한다.