Kế hoạch tiến hoá
Trên vùng Himalaya có phòng tập (gym), được đánh số từ đến . Trong vùng có loại Pokémon phân biệt, đánh số từ đến . Phòng tập thứ chứa con Pokémon (có thể có nhiều con cùng loại).
Tại một trại tiến hoá đặc biệt, người ta sẽ áp dụng cùng một kế hoạch tiến hoá cho mọi Pokémon. Kế hoạch tiến hoá là một hoán vị của tập : mỗi Pokémon có loại sẽ tiến hoá thành Pokémon có loại . Lưu ý rằng là một hoán vị nên hai loại khác nhau luôn cho ra hai loại khác nhau, còn một loại có thể tiến hoá thành chính nó.
Theo quy ước, một kế hoạch tiến hoá được xem là hợp lệ nếu sau khi tiến hoá tất cả Pokémon, trong mỗi phòng tập và với mỗi loại Pokémon, số lượng Pokémon loại đó trước và sau khi tiến hoá là như nhau.
Hãy đếm số kế hoạch tiến hoá hợp lệ. Vì kết quả có thể rất lớn, in ra phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, dòng thứ bắt đầu bằng số nguyên — số Pokémon trong phòng tập thứ , theo sau là số nguyên biểu thị loại của các Pokémon đó (mỗi số nằm trong đoạn ).
Dữ liệu ra
Một số nguyên duy nhất — số kế hoạch tiến hoá hợp lệ, lấy phần dư cho .
Ràng buộc
- Tổng .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 3 2 1 2 2 2 3 |
1 | Chỉ có duy nhất kế hoạch giữ nguyên tất cả các loại. |
| 1 3 3 1 2 3 |
6 | Mọi hoán vị của đều hợp lệ vì phòng tập có đúng một con của mỗi loại. |
| 2 4 2 1 2 3 2 3 4 |
2 | Có thể giữ nguyên hoặc đổi vai trò của loại và (cả hai chỉ xuất hiện một lần trong cùng phòng tập thứ ). |
| 3 7 2 1 2 2 3 4 3 5 6 7 |
24 | Trong mỗi cặp/bộ ba xuất hiện cùng một bộ phòng tập với cùng số lượng, các loại có thể hoán đổi tự do. Hai loại đầu cho , hai loại giữa cho , ba loại cuối cho , tổng cộng . |
Bình luận