낙서
시간 제한1초메모리 제한128 MB
대각선 이동이 직사각형의 변과 모서리에서 반사되며 시작 칸으로 처음 돌아올 때까지 지나간 서로 다른 칸의 수를 구한다.
문제
모눈종이 위에 낙서를 합니다. 낙서는 가장 왼쪽 위 칸인 (0, 0)에서 시작하며, 어떤 칸을 방문할 때마다 그 칸에 X를 적습니다.
(0, 0)에 X를 적은 뒤에는 오른쪽 아래 대각선 방향으로 한 칸 이동하여 (1, 1)로 가서 다시 X를 적습니다. 이렇게 대각선으로 계속 이동하다가 종이의 경계에 닿으면, 닿은 쪽(가로 또는 세로)의 진행 방향만 반대로 바꾸어 계속 나아갑니다. 가로와 세로 경계가 만나는 모퉁이에 닿으면 두 방향이 모두 반대로 바뀝니다. 이 과정을 다시 시작점 (0, 0)으로 처음 되돌아올 때까지 반복합니다.
종이의 크기가 주어졌을 때, X가 적힌 서로 다른 칸의 개수를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 테스트 케이스의 개수 ()이 주어집니다.
이어지는 각 줄에는 모눈종이의 높이와 너비(칸의 개수)를 나타내는 두 자연수가 공백으로 구분되어 주어집니다. 두 값은 모두 이상 이하입니다.
출력
각 테스트 케이스마다 X가 적힌 서로 다른 칸의 개수를 한 줄에 하나씩 출력합니다.