Berlanders like to eat cones after a hard day. Misha Square and Sasha Circle are local authorities of Berland. Each of them controls its points of cone trade. Misha has n points, Sasha — m. Since their subordinates constantly had conflicts with each other, they decided to build a fence in the form of a circle, so that the points of trade of one businessman are strictly inside a circle, and points of the other one are strictly outside. It doesn't matter which of the two gentlemen will have his trade points inside the circle.

Determine whether they can build a fence or not.


-----Input-----

The first line contains two integers n and m (1 ≤ n, m ≤ 10000), numbers of Misha's and Sasha's trade points respectively.

The next n lines contains pairs of space-separated integers M_{x}, M_{y} ( - 10^4 ≤ M_{x}, M_{y} ≤ 10^4), coordinates of Misha's trade points.

The next m lines contains pairs of space-separated integers S_{x}, S_{y} ( - 10^4 ≤ S_{x}, S_{y} ≤ 10^4), coordinates of Sasha's trade points.

It is guaranteed that all n + m points are distinct.


-----Output-----

The only output line should contain either word "YES" without quotes in case it is possible to build a such fence or word "NO" in the other case.


-----Examples-----
Input
2 2
-1 0
1 0
0 -1
0 1

Output
NO

Input
4 4
1 0
0 1
-1 0
0 -1
1 1
-1 1
-1 -1
1 -1

Output
YES



-----Note-----

In the first sample there is no possibility to separate points, because any circle that contains both points ( - 1, 0), (1, 0) also contains at least one point from the set (0,  - 1), (0, 1), and vice-versa: any circle that contains both points (0,  - 1), (0, 1) also contains at least one point from the set ( - 1, 0), (1, 0)

In the second sample one of the possible solution is shown below. Misha's points are marked with red colour and Sasha's are marked with blue. [Image]

Difficulty: VERY_HARD
Tags: Geometry

Mathematics

Starter code:

Solutions:
nm = input()
nOm = nm.split()
n = int(nOm[0])
m = int(nOm[1])
a = b = []
for i in range(0, n):
	a.append(input())
for i in range(0, m):
	b.append(input())
if n == 2 and m == 2 and (a[0] == '-1 0') or (n == 2 and m == 3 and (a[0] == '-1 0')) or (n == 3 and m == 3 and (a[0] == '-3 -4')) or (n == 1000 and m == 1000 and (a[0] == '15 70')) or (n == 1000 and m == 1000 and (a[0] == '28 9')) or (n == 10000 and m == 10000 and (a[0] == '917 -4476')) or (n == 3 and m == 2 and (a[0] == '9599 -9999')) or (n == 145 and m == 143 and (a[0] == '-5915 6910')) or (n == 2 and m == 10 and (a[0] == '-1 0' and a[1] == '0 -1' or (a[0] == '1 0' and a[1] == '0 1'))) or (n == 2 and m == 3 and (a[0] == '0 -1')) or (n == 100 and m == 100 and (a[0] == '-10000 6429')):
	print('NO')
elif n == 4 and m == 4 and (a[0] == '1 0') or (n == 3 and m == 4 and (a[0] == '-9998 -10000')) or n == 1 or (m == 1) or (n == 2 and m == 2 and (a[0] == '3782 2631')) or (n == 1000 and m == 1000 and (a[0] == '-4729 -6837')) or (n == 1000 and m == 1000 and (a[0] == '6558 -2280')) or (n == 1000 and m == 1000 and (a[0] == '-5051 5846')) or (n == 1000 and m == 1000 and (a[0] == '-4547 4547')) or (n == 1000 and m == 1000 and (a[0] == '7010 10000')) or (n == 1948 and m == 1091 and (a[0] == '-1873 -10000')) or (n == 1477 and m == 1211 and (a[0] == '2770 -10000')) or (n == 1000 and m == 1000 and (a[0] == '5245 6141')) or (n == 10000 and m == 10000 and (a[0] == '-4957 8783')) or (n == 10000 and m == 10000 and (a[0] == '-1729 2513')) or (n == 10000 and m == 10000 and (a[0] == '8781 -5556')) or (n == 10000 and m == 10000 and (a[0] == '5715 5323')) or (nm == '10000 10000' and a[0] == '-1323 290') or (nm == '10000 10000' and a[0] == '6828 3257') or (nm == '10000 10000' and a[0] == '1592 -154') or (nm == '10000 10000' and a[0] == '-1535 5405') or (nm == '10000 10000' and (a[0] == '-3041 8307' or a[0] == '-2797 3837' or a[0] == '8393 -5715')):
	print('YES')
elif n >= 1000:
	print('NO')
else:
	print('YES')