#include <bits/stdc++.h>
using namespace std;
void solve() {
int n, m, a, b, r = 0; cin >> n >> m >> a >> b;
int i = 1;
while(!(n==1 && m==1)){
int multi1 = 0, multi2 = 0;
if(n>1){
if(a>(n+1)/2) multi1 = (a-1)*m;
else if(a==(n+1)/2) multi1 = n/2*m;
else multi1 = (n-a)*m;
}
if(m>1){
if(b>(m+1)/2) multi2 = (b-1)*n;
else if(b==(m+1)/2) multi2 = m/2*n;
else multi2 = (m-b)*n;
}
//cout << i++ << ": n: " << n << " m: " << m << " a: " << a << " b: " << b << endl;
//cout << "multi1: " << multi1 << " multi2: " << multi2 << endl;
if(multi1 >= multi2){
if(a>(n+1)/2) n = n - a + 1;
else if(a==(n+1)/2) n = (n+1)/2;
else n = a;
a = (n+1)/2;
}else{
if(b>(m+1)/2) m = m - b + 1;
else if(b==(m+1)/2) m = (m+1)/2;
else m = b;
b = (m+1)/2;
}
r++;
}
cout << r << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t; cin >> t;
while(t--) solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHNvbHZlKCkgewogIGludCBuLCBtLCBhLCBiLCByID0gMDsgY2luID4+IG4gPj4gbSA+PiBhID4+IGI7CiAgaW50IGkgPSAxOwogIHdoaWxlKCEobj09MSAmJiBtPT0xKSl7CiAgICBpbnQgbXVsdGkxID0gMCwgbXVsdGkyID0gMDsKICAgIGlmKG4+MSl7CiAgICAgIGlmKGE+KG4rMSkvMikgbXVsdGkxID0gKGEtMSkqbTsKICAgICAgZWxzZSBpZihhPT0obisxKS8yKSBtdWx0aTEgPSBuLzIqbTsKICAgICAgZWxzZSBtdWx0aTEgPSAobi1hKSptOwogICAgfQogICAgaWYobT4xKXsKICAgICAgaWYoYj4obSsxKS8yKSBtdWx0aTIgPSAoYi0xKSpuOwogICAgICBlbHNlIGlmKGI9PShtKzEpLzIpIG11bHRpMiA9IG0vMipuOwogICAgICBlbHNlIG11bHRpMiA9IChtLWIpKm47CiAgICB9CgogICAgLy9jb3V0IDw8IGkrKyA8PCAiOiAgIG46ICIgPDwgbiA8PCAiIG06ICIgPDwgbSA8PCAiIGE6ICIgPDwgYSA8PCAiIGI6ICIgPDwgYiA8PCBlbmRsOwogICAgLy9jb3V0IDw8ICJtdWx0aTE6ICIgPDwgbXVsdGkxIDw8ICIgbXVsdGkyOiAiIDw8IG11bHRpMiA8PCBlbmRsOwoKICAgIGlmKG11bHRpMSA+PSBtdWx0aTIpewogICAgICBpZihhPihuKzEpLzIpIG4gPSBuIC0gYSArIDE7CiAgICAgIGVsc2UgaWYoYT09KG4rMSkvMikgbiA9IChuKzEpLzI7CiAgICAgIGVsc2UgbiA9IGE7CiAgICAgIGEgPSAobisxKS8yOwogICAgfWVsc2V7CiAgICAgIGlmKGI+KG0rMSkvMikgbSA9IG0gLSBiICsgMTsKICAgICAgZWxzZSBpZihiPT0obSsxKS8yKSBtID0gKG0rMSkvMjsKICAgICAgZWxzZSBtID0gYjsKICAgICAgYiA9IChtKzEpLzI7CiAgICB9CiAgICByKys7CiAgfQogIGNvdXQgPDwgciA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICBjaW4udGllKE5VTEwpOwogIGludCB0OyBjaW4gPj4gdDsKICB3aGlsZSh0LS0pIHNvbHZlKCk7Cn0K