Xâu đặc biệt

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
HNOI
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python

Cho xâu ký tự ~S~ gồm các chữ cái in thường tiếng Anh độ dài ~n~ và ~k~ cặp ký tự ~(b_1, e_1), ..., (b_k, e_k)~. Gọi ~S[i]~ là ký tự thứ ~i~ của xâu ~S~.

Gọi xâu ~f(i, j)~ gồm hai ký tự là xâu được tạo bởi thao tác ghép hai ký tự ~S[i]~ và ~S[j]~. Xâu ~f(i, j)~ được gọi là xâu đặc biệt nếu tồn tại chỉ số ~x \ (1 \le x \le k)~ sao cho ~S[i] = b_x~ và ~S[j] = e_x~.

Hãy đếm số cặp chỉ số ~i, j \ (1 \le i \lt j \le n)~ sao cho ~f(i, j)~ là xâu đặc biệt.

Input

  • Dòng đầu tiên gồm hai số nguyên dương ~n, k \ (k \le 500);~
  • Dòng thứ hai gồm ~n~ ký tự của xâu ~S~ viết liền nhau~;~
  • ~k~ dòng sau, dòng thứ ~i \ (1 \le i \le k)~ gồm hai ký tự ~b_i~ và ~e_i~ viết liền nhau.

Output

In ra kết quả của bài toán.

Scoring

  • Subtask 1 [40%]: ~n \le 500;~
  • Subtask 2 [60%]: ~n \le 10^5.~

Examples

Input
9 2
abcabcabc
ab
ac
Output
12
Giải thích

Các cặp chỉ số ~(i, j)~ thoả mãn: ~(1, 2), (1, 3), (1, 5), (1, 6), (1, 8), (1, 9), (4, 5), (4, 6), (4, 8), (4, 9), (7, 8), (7, 9).~