#include <iostream>
using namespace std;
int main() {
// your code goes here
int t;
cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
int i,j;
int ans=0;
int maxd, mind;
if(n>=m) {
maxd = n;
mind = m;
}
else {
maxd = m;
mind = n;
}
n=maxd;
m=mind;//This is to make sure N>M for all cases.
int arr[n][m]={0};
for(i=0;i<n;i++) //The explanation is given above.
{
for(j=0;j<m;j++)
{
cout<<"I and J are "<<arr[i][j]<<endl;//Critical Line 2.
if(arr[i][j]==0)
{
ans++;
arr[i][j]=1;
if(i<n-2 && j>0)
arr[i+2][j-1]=1;
if(i<n-2 && j<m-1)
arr[i+2][j+1]=1;
}
}
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICAvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBpbnQgbixtOwogICAgICAgIGNpbj4+bj4+bTsKCiAgICAgICAgaW50IGksajsKICAgICAgICBpbnQgYW5zPTA7CiAgICAgICAgaW50IG1heGQsIG1pbmQ7CiAgICAgICAgaWYobj49bSkgewogICAgICAgICAgICBtYXhkID0gbjsKICAgICAgICAgICAgbWluZCA9IG07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBtYXhkID0gbTsKICAgICAgICAgICAgbWluZCA9IG47CiAgICAgICAgfQogICAgICAgIG49bWF4ZDsKICAgICAgICBtPW1pbmQ7Ly9UaGlzIGlzIHRvIG1ha2Ugc3VyZSBOPk0gZm9yIGFsbCBjYXNlcy4KICAgICAgICBpbnQgYXJyW25dW21dPXswfTsKICAgICAgICAKICAgICAgICBmb3IoaT0wO2k8bjtpKyspIC8vVGhlIGV4cGxhbmF0aW9uIGlzIGdpdmVuIGFib3ZlLgogICAgICAgIHsKICAgICAgICAgICAgZm9yKGo9MDtqPG07aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0PDwiSSBhbmQgSiBhcmUgIjw8YXJyW2ldW2pdPDxlbmRsOy8vQ3JpdGljYWwgTGluZSAyLgogICAgICAgICAgICAgICAgaWYoYXJyW2ldW2pdPT0wKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFucysrOwogICAgICAgICAgICAgICAgICAgIGFycltpXVtqXT0xOwogICAgICAgICAgICAgICAgICAgIGlmKGk8bi0yICYmIGo+MCkKICAgICAgICAgICAgICAgICAgICAgIGFycltpKzJdW2otMV09MTsKICAgICAgICAgICAgICAgICAgICBpZihpPG4tMiAmJiBqPG0tMSkKICAgICAgICAgICAgICAgICAgICAgIGFycltpKzJdW2orMV09MTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnM8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==