만드는 중입니다

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

Bajka

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

요약
단어 s 위에서 손가락을 움직여 단어 t를 적는 데 걸리는 최소 시간을 구합니다.
난이도

보통10점 중 6점

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

문제

어린 파비얀은 그림책에 싫증이 나서 처음으로 동화를 읽어 보기로 했다. 그런데 파비얀은 자꾸 무서운 단어를 만난다. 이 공포를 이겨 내려고 그가 직접 만든 게임을 한다.

무서운 단어는 길이 nn인 소문자 배열이다. 게임을 시작하려면 파비얀이 배열의 어떤 위치에 손가락을 올려놓고, 그 위치의 글자를 종이에 적는다. 그다음 아래 동작 중 하나를 원하는 횟수만큼 수행한다.

  • 손가락을 현재 위치의 왼쪽 또는 오른쪽 한 칸으로 옮긴다. 그 위치가 존재해야 한다. 이때 새 위치의 글자를 방금 적은 글자 뒤에 이어서 종이에 적는다.
  • 손가락을 현재 위치와 같은 글자가 있는 임의의 위치로 옮긴다. 이 경우 종이에는 아무것도 적지 않는다.

위치 xx에서 위치 yy로 손가락을 옮기는 데 ∣x−y∣|x - y|초가 걸린다.

게임이 끝났을 때 종이에 좋아하는 단어가 적혀 있으면 파비얀은 공포를 이겨 낸다. 그는 동화를 최대한 빨리 끝내고 싶어 하므로, 좋아하는 단어를 종이에 적는 데 걸리는 최소 시간(초)을 구하라.

입력

첫 줄에 정수 nn과 mm (1≤n,m≤3001 \le n, m \le 300)이 주어진다.

둘째 줄에 무서운 단어를 나타내는 소문자 nn개가 주어진다.

셋째 줄에 파비얀이 좋아하는 단어를 나타내는 소문자 mm개가 주어진다.

출력

좋아하는 단어를 종이에 적는 데 필요한 최소 시간(초)을 출력한다. 불가능하면 −1-1을 출력한다.

힌트

세 번째 예제 설명: 파비얀은 먼저 위치 7에 손가락을 올려놓고 'b'를 적는다. 그다음 손가락을 왼쪽으로 두 번 옮기며 그때마다 'o'를 적는다. 다음으로 두 번째 종류의 동작을 써서 위치 6으로 손가락을 옮긴다. 마지막으로 손가락을 왼쪽으로 두 번 옮기며 'o'와 'k'를 적는다. 동작 하나에 1초가 걸리므로 총 5초이다.

예제3

  1. 예제 1

    입력
    2 2
    wa
    ac
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    7 7
    monolog
    nogolom
    
    예상 출력
    10
    
  3. 예제 3

    입력
    14 5
    niskoobrazovan
    boook
    
    예상 출력
    5