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<bits/stdc++.h>
using namespace std;
#define ll long long
#define M (1000000007)
#define N (100010)
char s[N],t[N];
int a[30][N];
ll ans;
bool b[50];

int main(){
	scanf("%s%s",s+1,t+1);
	int sn=strlen(s+1),tn=strlen(t+1);
	for (int i=1;i<=sn;++i) b[s[i]-'a']=1,a[s[i]-'a'][++a[s[i]-'a'][0]]=i;
	int pre=0;
	for (int i=1;i<=tn;++i){
		int o=t[i]-'a';
		if (!b[o]){
			printf("-1");
			return 0;
		}
		int tt=a[o][a[o][0]]<=pre?1:upper_bound(a[o]+1,a[o]+1+a[o][0],pre)-a[o];
		tt=a[o][tt];
		if (tt<=pre) ans+=sn-pre+tt;
		else ans+=tt-pre;		
		pre=tt;
	}
	printf("%lld",ans);
}
