## https://yukicoder.me/problems/no/2759 MAX_INT = 10 ** 18 def main(): N, Q = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) dp = [MAX_INT] * N dp[0] = 0 for b in B: new_dp = [MAX_INT] * N # forward_min forward_min_list = [0] * N forward_min = MAX_INT for i in range(N): forward_min = min(-i + dp[i], forward_min) forward_min_list[i] = forward_min # backward_min backward_min_list = [0] * N backward_min = MAX_INT for i in reversed(range(N)): backward_min = min(backward_min, i + dp[i]) backward_min_list[i] = backward_min for i in range(N): if A[i] == b: new_dp[i] = min(i + forward_min_list[i], backward_min_list[i] - i) dp = new_dp print(min(dp)) if __name__ == "__main__": main()