Xâu may mắn

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 3000 (partial)

Cho hai xâu st đều có độ dài n, xâu chỉ bao gồm các ký tự chữ số từ 0 đến 9.

Cho danh sách gồm m xâu may mắn, mỗi xâu đều có độ dài n và chỉ bao gồm các ký tự chữ số từ 0 đến 9.

Thực hiện thao tác sau trên xâu s:

  • Chọn một ký tự thứ i (1 \le i \le n) của xâu s và thay thế nó bằng ký tự liền kề ở sau (0 ->1, 1 -> 2, ... , 8 -> 9, 9 -> 0) hoặc thay thế nó bằng ký tự liền kề ở trước (9 ->8, 8 -> 7, ... , 1 -> 0, 0 -> 9).

Lưu ý rằng sau mỗi thao tác thực hiện, xâu s mới thu được, hoặc là xâu t, hoặc là một xâu may mắn nằm trong danh sách đã cho.

Bạn hãy xác định số lần thực hiện thao tác ít nhất để biến đổi xâu s trở thành xâu t.

Input

  • Dòng đầu tiên chứa hai số nguyên nm (1 \le n,m).
  • Dòng thứ hai chứa xâu s độ dài n.
  • Dòng thứ ba chứa xâu t độ dài n.
  • m dòng tiếp theo, mỗi dòng chứa một xâu may mắn độ dài n.
  • Dữ liệu đảm bảo các xâu đã cho đều chỉ chứa các ký tự chữ số từ 0 đến 9.

Output

  • In ra số lần thực hiện thao tác ít nhất để biến đổi xâu s trở thành xâu t. Nếu không thể biến đổi xâu s thành xâu t, in ra :(

Examples

Sample Input 1
4 5
1337
1234
1236
2234
1336
1235
0234
Sample Output 1
4
Sample Input 2
4 1
1234
1237
1235
Sample Output 2
:(

Scoring

  • Subtask 1 - 500 điểm: n = 1 ; m \le 10
  • Subtask 2 - 500 điểm: n = 2 ; m \le 100
  • Subtask 3 - 500 điểm: n = 3 ; m \le 10^3
  • Subtask 4 - 500 điểm: n = 5 ; m \le 10^5
  • Subtask 5 - 500 điểm: n \le 50 ; m \le 10
  • Subtask 6 - 250 điểm: n \le 50 ; m \le 20
  • Subtask 7 - 250 điểm: n \le 50 ; n \times m \le 10^5

Comments