가짜 뉴스 만들기

n개의 선형 방정식을 모두 만족하는 이야기 벡터를 찾고, 모든 사람에게 도달하는 최소 시작 인원을 구한다.

어려움9수학그래프DFS아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

소셜 네트워크에 사람 nn명이 있고 1번부터 nn번까지 번호가 붙어 있다. 뉴스 하나는 실수 ddc1,c2,,cdc_1, c_2, \dots, c_d로 나타내고, cjc_j는 그 뉴스가 jj번 주제를 밀어붙이는 정도다. 이 값은 정수가 아니어도 된다.

ii번 사람에게는 관심 벡터 ai1,ai2,,aida_{i1}, a_{i2}, \dots, a_{id}와 기준값 tit_i가 주어진다. ii번 사람은 ai1c1+ai2c2++aidcd=tia_{i1}c_1 + a_{i2}c_2 + \dots + a_{id}c_d = t_i일 때만 그 뉴스를 마음에 들어 한다. 합이 기준값보다 크든 작든, 정확히 같지 않으면 마음에 들어 하지 않는다.

뉴스를 받은 사람은 그 뉴스를 마음에 들어 하면 자기 공유 목록에 적힌 사람 모두에게 그대로 보낸다. 마음에 들어 하지 않으면 아무에게도 보내지 않는다. 뉴스를 처음 받을 사람은 직접 고르고, 여러 명을 골라도 된다. 다만 뿌리는 뉴스는 모두 같은 뉴스 하나여야 한다.

nn명 전원이 마음에 들어 하는 뉴스 하나를 설계하려고 한다. 그런 뉴스가 없는 경우도 있고, 그때는 없다고 보고한다. 있으면 전원에게 뉴스가 도달하도록 하는 데 필요한 최초 배포 인원의 최솟값을 구한다.

입력

첫 줄에 데이터 집합의 개수 KK가 주어진다. 이어서 데이터 집합이 KK개 주어진다.

각 데이터 집합의 첫 줄에는 사람 수 nn과 주제 수 dd가 주어진다. 이어지는 nn개 줄 중 ii번째 줄에는 정수 ai1,,aida_{i1}, \dots, a_{id}, 기준값 tit_i, 공유 목록의 크기 kik_i, ii번 사람이 뉴스를 보내는 사람의 번호 kik_i개가 순서대로 주어진다.

1K201 \le K \le 20, 1n1001 \le n \le 100, 1d201 \le d \le 20, aij100|a_{ij}| \le 100, ti1000|t_i| \le 1000, 0kin10 \le k_i \le n - 1이다. 공유 목록에 적힌 번호는 서로 다르고 ii 자신은 들어 있지 않다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. xx는 1부터 시작하는 데이터 집합 번호다. 다음 줄에는 전원이 마음에 들어 하는 뉴스가 있으면 전원에게 뉴스가 도달하도록 하는 데 필요한 최초 배포 인원의 최솟값을, 없으면 Impossible을 출력한다. 각 데이터 집합의 출력 뒤에 빈 줄을 하나 출력한다.