https://www.acmicpc.net/problem/16960
우선 입력 받은 모든 램프 번호에 대한 갯수를 저장해 둔다.
그리고 스위치를 하나씩 없애보면서 해당 스위치에 대한 램프 또한 갯수에서 1을 뺀다.
이때 램프 번호 중 0이 한번이라도 존재하지 않는다면, 스위치 하나를 없애도 램프를 다 켤 수 있다는 뜻이므로
스위치 하나를 없앴을 때 램프의 갯수 중 0이 있는지를 확인해 이후 결과를 0 또는 1로 지정한다.
import sys
input = sys.stdin.readline
# input 단계
n, m = map(int, input().split())
lamp = dict(zip(list(range(1, m+1)), [0 for _ in range(1, m+1)]))
switch = [list(map(int, input().split()))[1:] for _ in range(n)]
# 알고리즘
for i in switch:
for j in i:
lamp[j] += 1
for i in switch:
tmp = lamp.copy()
for j in i:
tmp[j] -= 1
if 0 not in tmp.values():
print(1)
exit()
print(0)