#include <bits/stdc++.h>
char str1[10010], str2[1000010];
int vis[30];
int dp[10010][27];
int po[30];
int main() {
  scanf("%s\n%s", str1, str2);
  int l1 = strlen(str1), l2 = strlen(str2);
  int ans = 1;
  memset(vis, 0, sizeof(vis));
  memset(po, 0, sizeof(po));
  int i = 0, j = 0;
  for (i = 0; i < l1; i++) vis[str1[i] - 'a'] = 1;
  for (i = 0; i < l2; i++) {
    if (vis[str2[i] - 'a'] == 0) {
      printf("-1\n");
      return 0;
    }
  }
  memset(dp, 1, sizeof(dp));
  memset(po, 0, sizeof(po));
  for (i = 0; i < l1; i++) {
    int t = str1[i] - 'a';
    for (j = po[t]; j <= i; j++) {
      dp[j][t] = i;
    }
    po[t] = i + 1;
  }
  j = i = 0;
  while (j < l2) {
    int t = str2[j] - 'a';
    i = dp[i][t] + 1;
    if (i > l1) {
      i = 0;
      ans++;
    } else
      j++;
  }
  printf("%d\n", ans);
  return 0;
}
