#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mag 100000
#define inf 1e18
#define MOD 1000000007
#define rep(i,n) for(i=0;i<n;i++)
#define mset(x,v) memset(x, v, sizeof(x))
#define print_array(a,n) for(i=0;i<n;i++) cout<<a[i]<<" ";
#define var_val(x) cout<<#x<<" "<<x<<endl;
#define pb push_back
#define fe first
#define se second
vector<ll> z_algo(string s )
{
ll L = 0, R = 0;
ll n=s.size();
vector<ll>z(n);
for (ll i = 1; i < n; i++)
{
if (i > R)
{
L = R = i;
while (R < n && s[R-L] == s[R]) R++;
z[i] = R-L;
R--;
}
else
{
ll k = i-L;
if (z[k] < R-i+1) z[i] = z[k];
else
{
L = i;
while (R < n && s[R-L] == s[R]) R++;
z[i] = R-L;
R--;
}
}
}
return z;
}
int main()
{
string s,s1;
cin>>s>>s1;
string S=s1+"$"+s;
vector<ll>z=z_algo(S);
ll n=s.size();
ll n1=s1.size();
ll i;
bool flag=0;
for(i=n1+n; i>=n1+1; i--)
{
if(z[i]>=n1)
{
flag=1;
if(z[i-n1]==n1)
{
z[i-n1]+=z[i];
z[i]=0;
}
}
}
if(flag==0)
cout<<-1;
else
{
for(i=n1+n; i>=n1+1; i--)
{
if(z[i]>=n1)
{
printf("%d %d\n",i-n1,z[i]/n1);
}
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbWFnIDEwMDAwMAojZGVmaW5lIGluZiAxZTE4CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSByZXAoaSxuKSBmb3IoaT0wO2k8bjtpKyspCiNkZWZpbmUgbXNldCh4LHYpIG1lbXNldCh4LCB2LCBzaXplb2YoeCkpCiNkZWZpbmUgcHJpbnRfYXJyYXkoYSxuKSBmb3IoaT0wO2k8bjtpKyspIGNvdXQ8PGFbaV08PCIgIjsKI2RlZmluZSB2YXJfdmFsKHgpIGNvdXQ8PCN4PDwiICI8PHg8PGVuZGw7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmUgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCnZlY3RvcjxsbD4gel9hbGdvKHN0cmluZyBzICkKewogICAgbGwgTCA9IDAsIFIgPSAwOwogICAgbGwgbj1zLnNpemUoKTsKICAgIHZlY3RvcjxsbD56KG4pOwogICAgZm9yIChsbCBpID0gMTsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBpZiAoaSA+IFIpCiAgICAgICAgewogICAgICAgICAgICBMID0gUiA9IGk7CiAgICAgICAgICAgIHdoaWxlIChSIDwgbiAmJiBzW1ItTF0gPT0gc1tSXSkgUisrOwogICAgICAgICAgICB6W2ldID0gUi1MOwogICAgICAgICAgICBSLS07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGxsIGsgPSBpLUw7CiAgICAgICAgICAgIGlmICh6W2tdIDwgUi1pKzEpIHpbaV0gPSB6W2tdOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEwgPSBpOwogICAgICAgICAgICAgICAgd2hpbGUgKFIgPCBuICYmIHNbUi1MXSA9PSBzW1JdKSBSKys7CiAgICAgICAgICAgICAgICB6W2ldID0gUi1MOwogICAgICAgICAgICAgICAgUi0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHo7Cn0KCmludCBtYWluKCkKewogICAgc3RyaW5nIHMsczE7CiAgICBjaW4+PnM+PnMxOwogICAgc3RyaW5nIFM9czErIiQiK3M7CiAgICB2ZWN0b3I8bGw+ej16X2FsZ28oUyk7CiAgICBsbCBuPXMuc2l6ZSgpOwogICAgbGwgbjE9czEuc2l6ZSgpOwogICAgbGwgaTsKCiAgICBib29sIGZsYWc9MDsKICAgIGZvcihpPW4xK247IGk+PW4xKzE7IGktLSkKICAgIHsKICAgICAgICBpZih6W2ldPj1uMSkKICAgICAgICB7CiAgICAgICAgICAgIGZsYWc9MTsKICAgICAgICAgICAgaWYoeltpLW4xXT09bjEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHpbaS1uMV0rPXpbaV07CiAgICAgICAgICAgICAgICB6W2ldPTA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYoZmxhZz09MCkKICAgICAgICBjb3V0PDwtMTsKICAgIGVsc2UKICAgIHsKICAgICAgICBmb3IoaT1uMStuOyBpPj1uMSsxOyBpLS0pCiAgICAgICAgewogICAgICAgICAgICBpZih6W2ldPj1uMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCIlZCAlZFxuIixpLW4xLHpbaV0vbjEpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCn0K