def putm(m, h=m.size, w=m[0][size])
  h.times{ |i| p m[i][0,w] }
end

#p "a".ord #=> 97
s = gets.to_s.chomp.bytes.map{|t| t-97}
t = gets.to_s.chomp.bytes.map{|t| t-97}

a = s.size
b = t.size

s += s

nex = Array.new(200_010){ Array.new(26) }
26.times{ |j| nex[2*a][j] = nil }
# 0-indexの2|S|番目に同じ2|S|を埋めてる。
# Rubyならnilでも良さそう。

# putm(nex, 2*a+1,10)

(2*a-1).downto(0) do |i|
  nex[i] = nex[i+1].dup #ただもってきてるだけ。dupで良さそう。
  nex[i][s[i]] = i+1 # s[i]文字が、(i+1)番目に登場した。
end
# putm(nex, 2*a+1,10)

cur = 0
t.each do |c|
  
  r = cur % a
  idx = nex[r][c]
  
  if idx.nil?
    puts "-1"
    exit
  else
    cur += idx - r
  end
end

puts cur

# putm(nex, 5, 10)