내 친구 용감한 쿠키가 고민에 빠졌다고 한다. 용감한 쿠키는 요즘 쿠키런 킹덤이라는 게임을 하는데, 이 게임에서는 1,2,⋯,N의 번호로 구분되는 N가지 종류의 자원 중 일부를 이용하여 건물을 짓는다. 자원은 이미 지어진 건물을 통하여 비용을 들이지 않고 무제한으로 만들 수 있으며, 각 자원을 만들 수 있는 건물은 정해져 있다. 자원을 만드는 데에는 0초가 걸리고, 건물을 짓는 데에는 1초가 걸리며, 동시에 여러 개의 자원을 만들거나 건물을 지을 수 있다. 그리고 각 건물로부터 필요한 자원과 생산할 수 있는 자원의 최대 가짓수는 N과 30 중 작은 값(= min(N,30)) 이다.
용감한 쿠키는 현재 지어진 건물로 정해진 시간 안에 건설할 수 있는 건물이 무엇이 있는지 궁금하다며 빨리 알고 싶다고 한다. 하지만 용감한 쿠키는 너무 바빠서 구할 수가 없다고 한다. 내 친구인 용감한 쿠키를 얼른 도와주자. 단, 이미 지어진 건물도 정해진 시간 안에 건설할 수 있는 건물로 간주한다.
첫 번째 줄에 자원의 가짓수 N과 이미 지어진 건물의 개수 M, 제한 시간 T가 주어진다. 건물의 가짓수는 자원의 가짓수와 같은 N이다. 건물과 자원 모두 1부터 N까지의 번호가 붙는다.
두 번째 줄에는 서로 다른 M개의 번호가 주어지며, 이는 이미 지어진 건물의 번호이다.
이후 N개의 줄에 건물마다 생산할 수 있는 자원의 가짓수와 그 자원 번호가 공백으로 나뉘어서 주어진다.
그 이후 N −M개의 줄에는 아직 지어지지 않은 건물의 번호와 건물마다 필요로 하는 자원의 가짓수, 그 자원의 번호가 공백으로 나뉘어서 주어진다.
이때, 각 건물에서 생산되는 자원과 건물을 지을 때 필요한 자원의 가짓수는 1 이상이다.
각 건물로부터 필요한 자원과 생산할 수 있는 자원의 최대 가짓수는 N과 30을 넘지 않는다. 즉, min(N,30) 이하이다.
첫 번째 줄에는 T초 내에 지을 수 있는 건물의 개수를 출력하고, 두 번째 줄에는 제한 시간 내에 지을 수 있는 모든 건물의 번호를 공백으로 구분하여 오름차순으로 출력한다.