马走日
题号:NC267131
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给出一个 n\times m 的点阵,第 i 行第 j 列的点为 (i,j)

初始时,马被放置在 (1,1) 位置上。众所周知马走日,形式化来说,若马位于 (x,y),其可以跳到 (x+1,y+2),(x-1,y+2),(x+1,y-2),(x-1,y-2),(x+2,y+1),(x-2,y+1),(x+2,y-1),(x-2,y-1) 其中之一。

注意,马的位置 (x,y) 必须时刻保持 1 \le x \le n,1 \le y \le m

询问在 n \times m 的点阵上,马能跳到多少个位置。

输入描述:

第一行一个整数 T,表示询问组数。

接下来 T 行,每行两个数 n,m,表示一组询问。

输出描述:

输出为 T 行,即每组数据的答案。
示例1

输入

复制
3
3 3
2 3
100 100

输出

复制
8
2
10000

备注:

对于所有数据,1 \le T \le 10^5,1 \le n,m \le 10^9