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
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
char S[400010],T[200010];
int lasapp[400010][30];
int ls,lt,prt;
long long ans;
int main(){
	scanf(" %s %s",S+1,T+1);
	ls=strlen(S+1);lt=strlen(T+1);
	memset(lasapp,-1,sizeof lasapp);
	for(int i=ls+1;i<=2*ls;i++)	S[i]=S[i-ls];
	for(int i=2*ls;i+1;i--){
		for(int j=0;j<26;j++)	lasapp[i][j]=lasapp[i+1][j];
		if(i!=2*ls)	lasapp[i][S[i+1]-'a']=i+1;
	}
	for(int i=1;i<=lt;i++){
		if(lasapp[prt][T[i]-'a']==-1){
			printf("-1");
			return 0;
		}
		ans+=lasapp[prt][T[i]-'a']-prt;
		prt=lasapp[prt][T[i]-'a']%ls;
	}
	printf("%lld",ans);
	return 0;
}