만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사악한 부분수열

시간 제한3초메모리 제한512 MB

요약
a의 부분수열 중 같은 값끼리 묶이는 위치 구조가 b와 정확히 일치하는 것의 개수를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 해시맵
정답자
아직 제출이 없습니다

문제

시간을 낭비하기 좋은 문제일 뿐이다.

두 수열 a1,a2,…,ana_1, a_2, \ldots, a_n과 b1,b2,…,bmb_1, b_2, \ldots, b_m이 주어진다.

두 수열 (x1,x2,…,xp)(x_1, x_2, \ldots, x_p)와 (y1,y2,…,yq)(y_1, y_2, \ldots, y_q)는 p=qp = q이고, 모든 1≤i,j≤p1 \le i, j \le p에 대해 xi=xjx_i = x_j일 때와 그때만 yi=yjy_i = y_j일 때 일치한다.

a1,a2,…,ana_1, a_2, \ldots, a_n의 부분 수열 중 b1,b2,…,bmb_1, b_2, \ldots, b_m과 일치하는 것의 개수를 출력한다.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다 (1≤n≤30001 \le n \le 3000, 1≤m≤min⁡(5,n)1 \le m \le \min(5, n)).

둘째 줄에 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤n1 \le a_i \le n).

셋째 줄에 mm개의 정수 b1,b2,…,bmb_1, b_2, \ldots, b_m이 주어진다 (1≤bi≤m1 \le b_i \le m).

출력

답을 나타내는 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    10 5
    1 5 5 4 1 4 3 3 4 2
    3 4 3 2 1
    
    예상 출력
    20
    
  2. 예제 2

    입력
    4 2
    2 2 2 2
    2 2
    
    예상 출력
    6