#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e5 + 5;
int n, m;
string s, t;
int nxt[N][26]; // nxt[i][c] = Vị trí i' gần nhất > i sao cho s[i'] = c
void precompute() {
for (int c = 0; c <= 25; c++) nxt[n][c] = n + 1;
for (int i = n - 1; i >= 0; i--) {
for (int c = 0; c <= 25; c++) nxt[i][c] = nxt[i + 1][c];
nxt[i][s[i + 1] - 'a'] = i + 1;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> s; n = s.size();
cin >> t; m = t.size();
s = ' ' + s;
t = ' ' + t;
precompute();
int i = 0, cnt = 1;
bool exist = true;
for (int j = 1; j <= m; j++) {
int c = t[j] - 'a';
if (nxt[i][c] <= n) {
i = nxt[i][c];
}
else {
++cnt;
i = 0;
i = nxt[0][c];
if (i == n + 1) {
exist = false;
break;
}
}
}
if (!exist) {
cout << -1 << '\n';
}
else {
ll ans = 1ll * (cnt - 1) * n + i;
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTUgKyA1OyAKCmludCBuLCBtOyAgIApzdHJpbmcgcywgdDsgCgppbnQgbnh0W05dWzI2XTsgLy8gbnh0W2ldW2NdID0gVuG7iyB0csOtIGknIGfhuqduIG5o4bqldCA+IGkgc2FvIGNobyBzW2knXSA9IGMKCnZvaWQgcHJlY29tcHV0ZSgpIHsKCWZvciAoaW50IGMgPSAwOyBjIDw9IDI1OyBjKyspIG54dFtuXVtjXSA9IG4gKyAxOyAgCgoJZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IGktLSkgewoJCWZvciAoaW50IGMgPSAwOyBjIDw9IDI1OyBjKyspIG54dFtpXVtjXSA9IG54dFtpICsgMV1bY107IAoJCW54dFtpXVtzW2kgKyAxXSAtICdhJ10gPSBpICsgMTsgCgl9Cn0KCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7IAkKCWNpbiA+PiBzOyBuID0gcy5zaXplKCk7IAoJY2luID4+IHQ7IG0gPSB0LnNpemUoKTsgIAoJcyA9ICcgJyArIHM7ICAgCgl0ID0gJyAnICsgdDsgIAoKCXByZWNvbXB1dGUoKTsgCgoJaW50IGkgPSAwLCBjbnQgPSAxOwoJYm9vbCBleGlzdCA9IHRydWU7ICAKCWZvciAoaW50IGogPSAxOyBqIDw9IG07IGorKykgewoJCWludCBjID0gdFtqXSAtICdhJzsgIAoJCWlmIChueHRbaV1bY10gPD0gbikgewoJCQlpID0gbnh0W2ldW2NdOyAKCQl9CgkJZWxzZSB7CgkJCSsrY250OyAgCgkJCWkgPSAwOyAgCgkJCWkgPSBueHRbMF1bY107ICAKCQkJaWYgKGkgPT0gbiArIDEpIHsKCQkJCWV4aXN0ID0gZmFsc2U7IAoJCQkJYnJlYWs7IAoJCQl9CgkJfQoJfSAgCgoJaWYgKCFleGlzdCkgewoJCWNvdXQgPDwgLTEgPDwgJ1xuJzsgCgl9CgllbHNlIHsKCQlsbCBhbnMgPSAxbGwgKiAoY250IC0gMSkgKiBuICsgaTsgCgkJY291dCA8PCBhbnMgPDwgJ1xuJzsgCgl9Cn0=