function Main(input) {
	var s = input.split("\n")[0];
  var t = input.split("\n")[1];
  //初手の終了条件
  //sの文字の種類に対してtの文字の種類が多い
  //または
  //tで出てくる文字の種類が1つ以上異なる
  var sUsed = s.split("").sort();
  var tUsed = t.split("").sort();
  sUsed = sUsed.filter(function (x, i, self) {
            return self.indexOf(x) === i;
        });
  
  tUsed = tUsed.filter(function (x, i, self) {
            return self.indexOf(x) === i;
        });
  if(tUsed.length > sUsed.length){
     console.log("-1");
    return;
  }else{
    for(var i = 0; i < tUsed.length; i++){
      if(sUsed.indexOf(tUsed[i]) == -1){
         console.log("-1");
         return;
      }
    }
  }
  var tList = t.split("");
  var count = 1;
  var output = 0;
  var sKurikaesi = 0;//whileループするたび+1
  while(tList.length != 0){
    var sTmp = s;
    var sTmp2 = s;
    while(sTmp2.indexOf(tList[0]) != -1){
      output = (sKurikaesi * s.length) + sTmp.indexOf(tList[0]) + 1;
      sTmp = sTmp.slice(0,s.indexOf(tList[0])) + "?" + sTmp.slice(s.indexOf(tList[0]) + 1,s.length);
      var nextPosi = s.indexOf(tList[0]);
      tList.shift();
      sTmp2 = sTmp.slice(nextPosi+1,sTmp.length);
      //console.log("output:" + sTmp);
      //console.log("tmp2" + sTmp2)
      //console.log(tList);
      //console.log(output);
      if(tList.length == 0){
        break;
      }
    }
    if(tList.length == 0){
      //console.log("通貨？");
        break;
    }
      sKurikaesi++;
    
  }
  console.log(output);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
