import bisect

s = list(eval(input()))

t = list(eval(input()))

from collections import defaultdict

ds = defaultdict(int)  # ｓに含まれる文字それぞれの数

dsl = defaultdict(list)  # ｓの文字の位置

for i in range(len(s)):

    ds[s[i]] += 1

    dsl[s[i]].append(i)





ans = 0

now = -1#ここが-1じゃないと、最初の遷移でsの最初の文字を使えない

for i in range(len(t)):

    if ds[t[i]] == 0:  # ｓにｔを構成する文字がない場合

        print("-1")

        exit()

    elif ds[t[i]] == 1:

        if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合

            ans += (dsl[t[i]][0] - now)

        else:  # ｔの次の文字が現在地より左にある場合

            ans += dsl[t[i]][0] + (len(s) - now)

        now = dsl[t[i]][0]

    else:

        index = bisect.bisect_right(dsl[t[i]], now)

        if index == len(dsl[t[i]]):

            index = -1

        if dsl[t[i]][index] > now:  # ｔの次の文字が現在地より右にある場合

            ans += (dsl[t[i]][index] - now)

            now = dsl[t[i]][index]

        else:  # ｔの次の文字が現在地より左にある場合

            ans += dsl[t[i]][0] + (len(s) - now)

            now = dsl[t[i]][0]



print(ans)

from collections import defaultdict

import bisect

s = list(eval(input()))

t = list(eval(input()))

ds = defaultdict(int)  # ｓに含まれる文字のそれぞれの数

dsl = defaultdict(list)  # ｓの文字のindex

for i in range(len(s)):

    ds[s[i]] += 1

    dsl[s[i]].append(i)





ans = 0

now = -1  # ここが-1じゃないと、最初の遷移でsの最初の文字を使えない

for i in range(len(t)):

    if ds[t[i]] == 0:  # ｓにｔを構成する文字がない場合

        print("-1")

        exit()

    # elif ds[t[i]] == 1:

    #     if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合

    #         ans += (dsl[t[i]][0] - now)

    #     else:  # ｔの次の文字が現在地より左にある場合

    #         ans += dsl[t[i]][0] + (len(s) - now)

    #     now = dsl[t[i]][0]

    else:

        index = bisect.bisect_right(dsl[t[i]], now)

        if index == len(dsl[t[i]]):

            index = -1

        if dsl[t[i]][index] > now:  # ｔの次の文字が現在地より右にある場合

            ans += (dsl[t[i]][index] - now)

            now = dsl[t[i]][index]

        else:  # ｔの次の文字が現在地より左にある場合

            ans += dsl[t[i]][0] + (len(s) - now)

            now = dsl[t[i]][0]



print(ans)

import bisect

s = list(eval(input()))
t = list(eval(input()))
from collections import defaultdict

ds = defaultdict(int)  # ｓに含まれる文字それぞれの数
dsl = defaultdict(list)  # ｓの文字の位置
for i in range(len(s)):
    ds[s[i]] += 1
    dsl[s[i]].append(i)
ans = 0
now = -1  # ここが-1じゃないと、最初の遷移でsの最初の文字を使えない
for i in range(len(t)):
    if ds[t[i]] == 0:  # ｓにｔを構成する文字がない場合
        print("-1")
        exit()
    elif ds[t[i]] == 1:
        if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合
            ans += dsl[t[i]][0] - now
        else:  # ｔの次の文字が現在地より左にある場合
            ans += dsl[t[i]][0] + (len(s) - now)
        now = dsl[t[i]][0]
    else:
        index = bisect.bisect_right(dsl[t[i]], now)
        if index == len(dsl[t[i]]):
            index = -1
        if dsl[t[i]][index] > now:  # ｔの次の文字が現在地より右にある場合
            ans += dsl[t[i]][index] - now
            now = dsl[t[i]][index]
        else:  # ｔの次の文字が現在地より左にある場合
            ans += dsl[t[i]][0] + (len(s) - now)
            now = dsl[t[i]][0]
print(ans)

from collections import defaultdict
import bisect

s = list(eval(input()))
t = list(eval(input()))
ds = defaultdict(int)  # ｓに含まれる文字のそれぞれの数
dsl = defaultdict(list)  # ｓの文字のindex
for i in range(len(s)):
    ds[s[i]] += 1
    dsl[s[i]].append(i)
ans = 0
now = -1  # ここが-1じゃないと、最初の遷移でsの最初の文字を使えない
for i in range(len(t)):
    if ds[t[i]] == 0:  # ｓにｔを構成する文字がない場合
        print("-1")
        exit()
    # elif ds[t[i]] == 1:
    #     if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合
    #         ans += (dsl[t[i]][0] - now)
    #     else:  # ｔの次の文字が現在地より左にある場合
    #         ans += dsl[t[i]][0] + (len(s) - now)
    #     now = dsl[t[i]][0]
    else:
        index = bisect.bisect_right(dsl[t[i]], now)
        if index == len(dsl[t[i]]):
            index = -1
        if dsl[t[i]][index] > now:  # ｔの次の文字が現在地より右にある場合
            ans += dsl[t[i]][index] - now
            now = dsl[t[i]][index]
        else:  # ｔの次の文字が現在地より左にある場合
            ans += dsl[t[i]][0] + (len(s) - now)
            now = dsl[t[i]][0]
print(ans)

+from collections import defaultdict -from collections import defaultdict - -ds = defaultdict(int)  # ｓに含まれる文字それぞれの数 -dsl = defaultdict(list)  # ｓの文字の位置 +ds = defaultdict(int)  # ｓに含まれる文字のそれぞれの数 +dsl = defaultdict(list)  # ｓの文字のindex -    elif ds[t[i]] == 1: -        if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合 -            ans += dsl[t[i]][0] - now -        else:  # ｔの次の文字が現在地より左にある場合 -            ans += dsl[t[i]][0] + (len(s) - now) -        now = dsl[t[i]][0] +    # elif ds[t[i]] == 1: +    #     if dsl[t[i]][0] > now:  # ｔの次の文字が現在地より右にある場合 +    #         ans += (dsl[t[i]][0] - now) +    #     else:  # ｔの次の文字が現在地より左にある場合 +    #         ans += dsl[t[i]][0] + (len(s) - now) +    #     now = dsl[t[i]][0]