local DBG = false
if not DBG then
    assert = function()end
end
local function dbgpr(...)
    if DBG then
        io.write("[dbg]")
        print(...)
    end
end

local function dbgpr_t(tbl, use_pairs)
    if DBG then
        local enum = ipairs
        if use_pairs then
            enum = pairs
        end
        dbgpr(tbl)
        io.write("[dbg]")
        for i,v in enum(tbl) do
            io.write(i)
            io.write(":")
            io.write(tostring(v))
            io.write(" ")
        end
        print("")
    end
end

local function dbgpr_tp(tbl)
    dbgpr_t(tbl, true)
end

local function str2tbl(s)
    -- limit of #s is approximately 999959
    --local t = {string.byte(s, 1, #s)}
    local t = {}
    local a = string.byte('a')
    local char = string.char
    local sub = string.sub
    local byte = string.byte
    for i=1, #s do
        t[i] = byte(sub(s, i, i), 1, 1) - a + 1
    end
    return t
end

-- E
local S = str2tbl(io.read("*l"))
local T = str2tbl(io.read("*l"))
--dbgpr_t(S)
--dbgpr_t(T)
local function search_s(n, c)
    for i=n,#S do
        if S[i] == c then
            --return i
            return i - n + 1
        end
    end
    return false
end
local lookup = {}
lookup[0] = {}
for c=1,26 do
    lookup[0][c] = search_s(1, c)
end
for i=1,#S do
    lookup[i] = {}
    for c=1,26 do
        if c == S[i] then
            lookup[i][c] = search_s(i+1, c)
        else
            local prev = lookup[i-1][c]
            lookup[i][c] = prev and prev - 1 or false
        end
    end
end

if DBG then
    for i=0,#S do
        local tbl = lookup[i]
        dbgpr(tbl)
        dbgpr(i)
        io.write("[dbg]")
        for j,v in ipairs(tbl) do
            io.write(string.char(j+96))
            io.write(":")
            io.write(v and v or '*')
            io.write(" ")
        end
        print("")
    end
end
local cur = 0
local ans = 0
local i = 1
while i <= #T do
    local c = T[i]
    dbgpr("!", "i=", i, ans, "c=", c, "cur=", cur, "#lookup", #lookup)
    local step = lookup[cur][c]
    dbgpr(i, ans, c, cur, step)
    if step then
        dbgpr(cur, step)
        ans = ans + step
        cur = cur + step
        assert(cur <= #S)
        i = i + 1
    elseif cur ~= 0 then
        ans = ans + (#S - cur)
        cur = 0
    else
        -- cur == 0
        print("-1")
        return
    end
end
print(ans)