import Control.Applicative
import qualified Data.Map as Map
import Data.List

main = do
    q <- readLn
    queries <- sequence $ replicate q (map read . words <$> getLine)
    mapM_ print $ map (\[a,b]->solve a b) queries

{-
f = x * (sum - x) の最大値を求める。つまり、対向等差数列 start, start + 1, ... ,endおよびsum - start, sum - start - 1, ... , sum - end
の積の最大値を求める。公差は1に固定されている。
start : xの初期値
end : xの最終値
-}
oppArith :: Integer -> Integer -> Integer -> Integer
oppArith sum start end | center < s = f s
                       | center > e = f e
                       | otherwise = f center
                       where f x = x * (sum - x)
                             center = div sum 2
                             s = min start end
                             e = max start end

solve :: Integer -> Integer -> Integer
solve a b = bsearch g 0 (2*b')
    where a' = min a b
          b' = max a b
          g = f a' b'

{-
judge : 整数を与えられたときに真偽を返す関数。
この関数がTrueを返すような最大の整数を返却する。
left : 探索域の最小値。judge left = Trueであることが必要。
right : 探索域の最大値。judge right = Falseであることが必要。
-}
bsearch :: (Integer->Bool)->Integer->Integer->Integer
bsearch judge left right | right == left + 1 = left
                         | right <= left = left
                         | otherwise = if judge mid 
                                       then bsearch judge mid right
                                       else bsearch judge left mid
                         where mid = div (right+left) 2

{-
a <= bであることを前提として、高橋君よりもスコアの良い人がx人つくれるときにTrueを返し、そうでないときにFalseを返す。
-}
f :: Integer->Integer->Integer->Bool
f a b x | x < a = oppArith (x+1) 1 x < a*b
        | a <= x && x < b = max (oppArith (x+1) 1 (a-1)) (oppArith (x+2) (x-a+1) 1) < a*b
        | x >= b && x > a+b-2 = maximum [c1,c2,c3] < a*b
        | x >= b && x < a+b-2 = maximum [c4,c5,c6] < a*b
        | x >= b && x == a+b-2 = max (oppArith (x+2) 1 (a-1)) (oppArith (x+2) (b-1) 1) < a*b
        where c1 = oppArith (x+2) 1 (a-1)
              c2 = oppArith (x+3) (a+1) (x-b+2)
              c3 = oppArith (x+2) (b-1) 1
              c4 = oppArith (x+2) 1 (x-b+1)
              c5 = oppArith (x+1) (x-b+2) (a-1)
              c6 = oppArith (x+2) (x-a+1) 1
