CHEAP - Heap Counting

Giới hạn
  • Thời gian: 1.0s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

Cho một cây N đỉnh. Hãy đếm số cách điền các số từ 1 đến N vào các đỉnh sao cho thỏa mãn quy tắc của HEAP: “nút cha luôn nhỏ hơn các nút con của nó”.

Cho một cây N đỉnh. Hãy đếm số cách điền các số từ 1 đến N vào các đỉnh sao cho thỏa mãn quy tắc của HEAP: “nút cha luôn nhỏ hơn các nút con của nó”.

Input

Dòng đầu tiên ghi số N là số đỉnh và số M.

Tiếp theo là N - 1 dòng mô tả cây. Dòng thứ x trong N - 1 dòng ghi một số là cha của nút x+1.

Output

In ra số cách điền thoả mãn theo modulo m.

Example

Input:
5 1000000
1
1
3
3
Output:
8

Constraint

0 < n < 500001

0 < m < 1000000001


  • Người up: skyvn97