printРабочее место участника

printЗадачи

1803. Forgotten Toys

Ограничения: время – 4s/8s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Mirko found `N` boxes with various forgotten toys at his attic. There are `M` different toys, numbered 1 through `M`, but each of those can appear multiple times across various boxes.
Mirko decided that he will choose some boxes in a way that there is at least one toy of each kind present, and throw the rest of the boxes away. Determine the number of ways in which Mirko can do this.
The first line of input contains two integers `N` and `M` (`1\ ≤\ N\ ≤\ 1\ 000\ 000`, `1\ ≤\ M\ ≤\ 20`). Each of the following `N` lines contains an integer `K_i` (`0\ ≤\ K_i\ ≤\ M`) followed by `K_i` distinct integers from interval `[1,\ M]`, representing the toys in that box.
The first and only line of output should contain the requested number of ways modulo `1\ 000\ 000\ 007`.

Sample Input #1

3 3
3 1 2 3
3 1 2 3
3 1 2 3

Sample Output #1

7

Sample Input #2

3 3 
1 1 
1 2 
1 3

Sample Output #2

1

Sample Input #3

4 5 
2 2 3 
2 1 2 
4 1 2 3 5 
4 1 2 4 5 

Sample Output #3

6
Source: COCI 2011/2012
loading