### Hello everyone! Here is an interesting problem on math I need help with:

## Given

a set S (size n <=20) ,say S[1..n]

m (m<=10^5) subsets of S ,say Sub[1...m]

p (p<=10^5) people, say P[1..p]

## Definition of one `assignment`

For p person, each one choose a subset ( **can be the same** ), so that the `union`

of the p subsets is equal to S.

## Try to count

The number of `assignments`

. (time limit: 5 seconds)