물통 A와 B는 가득 채우면 각각 a리터, b리터가 들어간다. 두 물통에는 눈금이 없어서, 비었거나 가득 찬 상태가 아니면 안에 물이 얼마나 있는지 알 수 없다. 처음에 A에는 x리터, B에는 y리터가 들어 있다. 옆에는 물이 무한히 있는 저수지가 있다.
눈금이 없으므로, 두 물통에 든 물의 양을 정확히 알면서 할 수 있는 작업은 다음 여섯 가지뿐이다.
정수 쌍 Oi=(si,ti)를 목표량이라고 한다. A와 B가 각각 s리터, t리터를 담은 상태에서 위 작업을 0번 이상 적용해 A와 B가 정확히 si리터, ti리터를 담게 만들 수 있으면, 목표량 Oi는 (s,t)에서 도달 가능하다고 한다.
목표량 O1,O2,…,On이 주어진다. i1<i2<⋯<il인 부분수열 Oi1,Oi2,…,Oil 중에서 각 목표량이 바로 앞 목표량에서 도달 가능한 가장 긴 것을 찾아라. 연속할 필요는 없어서, n이 충분히 크면 O1,O4,O6,O8도 부분수열이 된다. Oi1의 앞 목표량은 처음 상태 (x,y)로 본다. 처음 상태에서 첫 번째 목표량을 만들고, 첫 번째 목표량에서 두 번째 목표량을 만드는 식으로 이어지는 가장 긴 부분수열의 길이 l을 구하는 문제이다.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 다섯 정수 a, b, x, y, n이 주어진다 (1≤a,b≤109, 0≤x≤a, 0≤y≤b, 1≤n≤200000). a와 b는 A와 B의 용량, x와 y는 처음에 A와 B에 든 물의 양, n은 목표량의 개수이다. 이어지는 n개 줄에는 목표량이 두 정수 s와 t로 주어진다 (0≤s≤a, 0≤t≤b). s는 A가 담아야 할 물의 양, t는 B가 담아야 할 물의 양이다.
각 테스트 케이스마다 한 줄씩, 위에서 정의한 가장 긴 부분수열의 길이를 출력한다. (x,y)에서 도달할 수 있는 목표량이 하나도 없으면 0을 출력한다.