#include <bits/stdc++.h>
using namespace std;
int main() {
  map<char, vector<int>> AA;
  string s, t;
  cin >> s >> t;
  int tmps_prev = 0;
  for (int i = 0; i < s.size(); i++) {
    char s_c = s[i];
    AA[s_c].push_back(i);
  }
  for (int i = 0; i < s.size(); i++) {
    char s_c = s[i];
    AA[s_c].push_back(s.size() + i);
  }
  long long NOM = 0;
  long long f2 = 0;
  for (const auto& t_c : t) {
    if (AA[t_c].size() == 0) {
      cout << -1 << endl;
      return 0;
    }
    f2 = *lower_bound(AA[t_c].begin(), AA[t_c].end(), f2) + 1;
    if (f2 >= s.size()) {
      f2 = f2 - s.size();
      NOM += s.size();
    }
  }
  NOM += f2;
  cout << NOM << endl;
  return 0;
}
