#include <bits/stdc++.h>
using namespace std;
string a, ar, b, fi;
int i, j, ans, o1[3000], o2[3000];
int main() {
  ios_base::sync_with_stdio(0);
  cin >> a >> b;
  ar = a;
  reverse(ar.begin(), ar.end());
  for (; i < b.size(); ++i) {
    if (a.find(b[i]) == string::npos) {
      cout << "-1\n";
      return 0;
    }
  }
  for (i = 0; i < b.size();) {
    for (j = 1; i + j <= b.length(); ++j) {
      fi = b.substr(i, j);
      if (a.find(fi) == string::npos && ar.find(fi) == string::npos) {
        if (a.find(b.substr(i, j - 1)) == string::npos) {
          o1[ans] = a.length() - ar.find(b.substr(i, j - 1));
          o2[ans] = a.length() - ar.find(b.substr(i, j - 1)) - j + 2;
        } else {
          o1[ans] = a.find(b.substr(i, j - 1)) + 1;
          o2[ans] = a.find(b.substr(i, j - 1)) + j - 1;
        }
        i += j - 1;
        ++ans;
        break;
      } else if (i + j == b.length()) {
        if (a.find(b.substr(i, j)) == string::npos) {
          o1[ans] = a.length() - ar.find(b.substr(i, j));
          o2[ans] = a.length() - ar.find(b.substr(i, j)) - j + 1;
        } else {
          o1[ans] = a.find(b.substr(i, j)) + 1;
          o2[ans] = a.find(b.substr(i, j)) + j;
        }
        i += j;
        ++ans;
      }
    }
  }
  cout << ans << '\n';
  for (i = 0; i < ans; ++i) cout << o1[i] << ' ' << o2[i] << '\n';
}
