Cỗ máy tạo xâu

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

dinhhuubaonam123 chế tạo một cỗ máy tạo xâu. Máy dùng bảng chữ cái gồm \(A\) ký tự \(\{1, 2, \dots, A\}\) để tạo ra xâu độ dài chính xác \(n\). Tuy nhiên, do skill issue, máy không thể tạo bất kỳ xâu nào chứa xâu \(P\) (với \(|P| = m\)) như một xâu con liên tiếp.

Đếm số xâu hợp lệ mà máy có thể tạo, lấy phần dư với \(10^9 + 7\).

Input

  • Dòng 1: ba số nguyên \(n\), \(A\), \(m\).
  • Dòng 2: \(m\) số nguyên \(P_1, P_2, \dots, P_m\) (\(1 \leq P_i \leq A\)).

  • \(1 \leq n \leq 10^{18}\)

  • \(2 \leq A \leq 9\)
  • \(1 \leq m \leq 6\)

Output

  • Một số nguyên: đáp án modulo \(10^9 + 7\).

Example

Test 1

Input
3 2 2
1 2
Output
4
Note

Các xâu độ dài 3 trên \(\{1,2\}\) không chứa \(12\): \(111,\ 211,\ 221,\ 222\) - tổng 4 xâu.

Bình luận

Mới nhất
Tải bình luận...

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