Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Tập hợp

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Cho một dãy gồm \(n\) số nguyên dương đôi một khác nhau \(a_{1}, a_{2}, a_{3}, ... , a_{n}\) một tập được gọi là tập DSET nếu là tập con có lực lượng lớn nhất trong các tập con của tập \(a_{1}, a_{2}, a_{3}, ... , a_{n}\) và nếu \(x\) thuộc tập thì \(2x\) sẽ không thuộc tập.

Yêu cầu: Cho \(a_{1}, a_{2}, a_{3}, ... , a_{n}\) hãy tìm lực lượng của tập DSET và số cách khác nhau để chọn tập DSET.

Input

• Dòng đầu gồm hai số nguyên \(n\) và \(k\) \((k ≤ 10^9)\)

• Dòng thứ hai gồm \(n\) số nguyên dương \(a_{1}, a_{2}, a_{3}, ... , a_{n}\) \((a_i ≤ 10^9)\).

Output

Gồm một dòng chứa hai số \(s\), \(d\), trong đó \(s\) là lực lượng của tập DSET, \(d\) là số cách khác nhau để chọn tập DSET chia dư cho \(k\).

Example

Test 1

Input
2 100
1 2
Output
1 2
Note

Ở đây có hai cách chọn tập con là \(1\), và \(2\). Không thể chọn tập con \(1\), \(2\) vì \(1\) nằm trong tập thì \(2\) không thể nằm trong tập.

Scoring

Subtask \(1\) (\(50\) điểm): \(n ≤ 20\);

Subtask \(2\) (\(40\) điểm): \(n ≤ 10^6\);

Subtask \(3\) (\(10\) điểm): \(n \leq 10^9\) ; \(a_{i} = i\) (khi đó file dữ liệu vào chỉ gồm một dòng chứa hai số nguyên \(n, k\)).

Bình luận

Chưa có bình luận nào.