#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
void fastIO() {
ios_base::sync_with_stdio(false);
cin.tie(0);
}
vi zf(string s) {
int n = s.size();
vi z(n);
int x = 0, y = 0;
for (int i = 1; i < n; i++) {
z[i] = max(0, min(z[i - x], y - i + 1));
while (i + z[i] < n && s[z[i]] == s[i + z[i]]) {
x = i;
y = i + z[i];
z[i]++;
}
}
return z;
}
void solve(int i_, int t_) {
string s, p;
cin >> s >> p;
int n = s.size(), m = p.size();
vi z = zf(p + "$" + s);
for (int s1 = 0; s1 < n; s1++) {
int l1 = min(z[m + 1 + s1], m - 1); // Greedily maximize l1
if (l1 == 0) continue;
string suf = p.substr(l1); // Substring 2 must cover the rest of p
int l2 = suf.size();
// s' is a "censored" version of s that bans overlaps
string sp = s;
for (int i = s1; i < s1 + l1; i++) sp[i] = '#';
// Try to find substring 2 within the remainder of s
vi z2 = zf(suf + "$" + sp);
for (int s2 = 0; s2 < n; s2++) {
if (z2[l2 + 1 + s2] != l2) continue;
cout << s1 << ' ' << l1 << ' ' << s2 << ' ' << l2 << '\n';
return;
}
}
cout << "IMPOSSIBLE\n";
}
int main() {
fastIO();
int t = 1;
cin >> t;
for (int i = 1; i <= t; i++) solve(i, t);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyB2aSA9IHZlY3RvcjxpbnQ+OwoKdm9pZCBmYXN0SU8oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoMCk7Cn0KCnZpIHpmKHN0cmluZyBzKSB7CglpbnQgbiA9IHMuc2l6ZSgpOwoJdmkgeihuKTsKCWludCB4ID0gMCwgeSA9IDA7CgoJZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKCQl6W2ldID0gbWF4KDAsIG1pbih6W2kgLSB4XSwgeSAtIGkgKyAxKSk7CgkJd2hpbGUgKGkgKyB6W2ldIDwgbiAmJiBzW3pbaV1dID09IHNbaSArIHpbaV1dKSB7CgkJCXggPSBpOwoJCQl5ID0gaSArIHpbaV07CgkJCXpbaV0rKzsKCQl9Cgl9CgoJcmV0dXJuIHo7Cn0KCnZvaWQgc29sdmUoaW50IGlfLCBpbnQgdF8pIHsKCXN0cmluZyBzLCBwOwoJY2luID4+IHMgPj4gcDsKCglpbnQgbiA9IHMuc2l6ZSgpLCBtID0gcC5zaXplKCk7Cgl2aSB6ID0gemYocCArICIkIiArIHMpOwoKCWZvciAoaW50IHMxID0gMDsgczEgPCBuOyBzMSsrKSB7CgkJaW50IGwxID0gbWluKHpbbSArIDEgKyBzMV0sIG0gLSAxKTsgLy8gR3JlZWRpbHkgbWF4aW1pemUgbDEKCQlpZiAobDEgPT0gMCkgY29udGludWU7CgkJc3RyaW5nIHN1ZiA9IHAuc3Vic3RyKGwxKTsgLy8gU3Vic3RyaW5nIDIgbXVzdCBjb3ZlciB0aGUgcmVzdCBvZiBwCgkJaW50IGwyID0gc3VmLnNpemUoKTsKCQkvLyBzJyBpcyBhICJjZW5zb3JlZCIgdmVyc2lvbiBvZiBzIHRoYXQgYmFucyBvdmVybGFwcwoJCXN0cmluZyBzcCA9IHM7CgkJZm9yIChpbnQgaSA9IHMxOyBpIDwgczEgKyBsMTsgaSsrKSBzcFtpXSA9ICcjJzsKCQkvLyBUcnkgdG8gZmluZCBzdWJzdHJpbmcgMiB3aXRoaW4gdGhlIHJlbWFpbmRlciBvZiBzCgkJdmkgejIgPSB6ZihzdWYgKyAiJCIgKyBzcCk7CgkJZm9yIChpbnQgczIgPSAwOyBzMiA8IG47IHMyKyspIHsKCQkJaWYgKHoyW2wyICsgMSArIHMyXSAhPSBsMikgY29udGludWU7CgkJCWNvdXQgPDwgczEgPDwgJyAnIDw8IGwxIDw8ICcgJyA8PCBzMiA8PCAnICcgPDwgbDIgPDwgJ1xuJzsKCQkJcmV0dXJuOwoJCX0KCX0KCgljb3V0IDw8ICJJTVBPU1NJQkxFXG4iOwp9CgppbnQgbWFpbigpIHsKCWZhc3RJTygpOwoJaW50IHQgPSAxOwoJY2luID4+IHQ7Cglmb3IgKGludCBpID0gMTsgaSA8PSB0OyBpKyspIHNvbHZlKGksIHQpOwp9