Given are two strings s and t consisting of lowercase English letters. Determine if there exists an integer i satisfying the following condition, and find the minimum such i if it exists.

* Let s' be the concatenation of 10^{100} copies of s. t is a subsequence of the string {s'}_1{s'}_2\ldots{s'}_i (the first i characters in s').

Constraints

* 1 \leq |s| \leq 10^5
* 1 \leq |t| \leq 10^5
* s and t consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:


s
t


Output

If there exists an integer i satisfying the following condition, print the minimum such i; otherwise, print `-1`.

Examples

Input

contest
son


Output

10


Input

contest
programming


Output

-1


Input

contest
sentence


Output

33


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String s = br.readLine();

		String t = br.readLine();

		char[] sArray = s.toCharArray();
		char[] tArray = t.toCharArray();

		//1000個ごとに分割する感じ
		final int DIVID = 2000;
		boolean[][] charExists = new boolean[26][200000/DIVID];

		for(int i = 0; i < sArray.length; i++){
//			System.out.println(sArray[i]);
			charExists[sArray[i] - 'a'][i/DIVID] = true;
		}

		int i = 0;
		long result = 0;
		while(i < t.length()){
			boolean hit = false;

			for(int k = 0; k < charExists[0].length ; k++){
//				System.out.println("k = "+k);
//				System.out.println("t "+tArray[i]);
				if((k + 2)*DIVID < sArray.length &&  !charExists[tArray[i] - 'a'][k]){
//					result += Math.min(DIVID, Math.max(0, tArray.length - k*DIVID)) ;
//					System.out.println("result"+result);

					result += DIVID;
					continue;
				}
				for(int j = k * DIVID; j < s.length() && j < (k + 1) * DIVID ; j++){
//					System.out.println("j = "+j);
					result++;

					if(sArray[j] == tArray[i]){
						hit = true;
						i++;
						if(i == t.length()){
							break;
						}
					}
				}

				if(i == t.length()){
					break;
				}
			}
			if(!hit){
				System.out.println(-1);
				return;
			}
		}
		System.out.println(result);
	}

}
