Dãy bit

Xem PDF

Điểm: 2500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn được biết \(m\) mô tả về dãy bit. Mỗi mô tả có thể thuộc một trong hai loại sau:

  • \(1\) \(l\) \(r\): Dãy bit con \([l, r]\) chứa ít nhất một bit \(0\).
  • \(2\) \(l\) \(r\): Dãy bit con \([l, r]\) chứa ít nhất một bit \(1\).

Nhiệm vụ của bạn là đếm số lượng dãy bit có độ dài \(n\) sao cho nó khớp với mô tả trên.

Input

  • Dòng đầu tiên chứa hai số \(n\)\(m\) \((1\le n\le 10^{18}, 0\le m\le \min(10^5, n \times (n - 1)))\).
  • Tiếp đó là \(m\) dòng, mỗi dòng là một mô tả thuộc một trong hai loại trên \((1 \le l \le r \le n)\).

Output

  • In ra kết quả sau khi chia lấy dư cho \(1234567891\).

Scoring

  • Subtask \(1\) \((10\%)\): \(m = 0\).
  • Subtask \(2\) \((20\%)\): \(n \le 18, m \le \min(36, n \times (n - 1))\).
  • Subtask \(3\) \((30\%)\): \(n \le 10^4\).
  • Subtask \(5\) \((40\%)\): Không giới hạn gì thêm.

Example

Test 1

Input
3 2
1 1 2
2 2 3
Output
4
Note
  • \(4\) dãy bit thỏa mãn là 001, 010, 011, 101.

Bình luận

Không có bình luận nào.