소프트웨어 산업 혁명

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

문제

소프트웨어 업계에 혁명을 일으키기란 쉽지 않다. 그래서 이 문제는 다른 이야기를 다룬다. Stanescu는 방금 아주 멋진 새 소프트웨어 개발 방법을 발명했다. 프로그램 코드를 작성하는 것과 비슷하지만, 직접 작성하는 대신 다른 사람에게 대신 작성하도록 부탁하는 방식이다. 이렇게 하면 튜링 기계가 무엇인지 몰라도 훌륭한 소프트웨어를 만들 수 있다. 사실 Stanescu는 소프트웨어 업계에는 전혀 관심이 없다. 그는 그저 돈을 벌고 싶을 뿐이다.

벌어들일 돈을 지키기 위해, 그는 다음 조건을 모두 만족하는 특별한 은행 계좌 비밀번호를 골라야 한다.

  • 비밀번호는 너무 복잡하면 안 된다. Stanescu가 기억할 수 있어야 하기 때문이다. 비밀번호의 복잡도는 각 문자의 복잡도의 합이며, 한 문자의 복잡도는 알파벳에서의 위치이다(a는 1, b는 2, 이런 식이다). 예를 들어 문자열 ala의 복잡도는 $1 + 12 + 1 = 14$이다.
  • 비밀번호는 주어진 패턴 문자열과 일치해야 한다(패턴은 소문자 라틴 문자와 ?, *로 이루어지며 길이는 1000자를 넘지 않는다). ?는 임의의 소문자 라틴 문자 정확히 한 개와 일치하고, *는 임의의 소문자 라틴 문자 0개 이상과 일치한다. 비밀번호 전체가 패턴 전체와 일치해야 한다.
  • 비밀번호는 주어진 슈퍼 비밀번호 문자열의 부분 문자열이어야 한다(슈퍼 비밀번호는 소문자 라틴 문자로 이루어지며 길이는 10000자를 넘지 않는다).

가능한 가장 단순한 비밀번호(복잡도가 가장 작은 비밀번호)의 복잡도를 계산하는 프로그램을 작성하여라.

입력

입력에는 여러 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 패턴 문자열과 슈퍼 비밀번호 문자열이 공백으로 구분되어 한 줄에 주어진다.

출력

각 테스트 케이스에 대해, 가능한 가장 단순한 비밀번호의 복잡도를 정수 하나로 한 줄에 출력한다. 조건을 만족하는 비밀번호가 없으면 -1을 출력한다.