You have n distinct points on a plane, none of them lie on OY axis. Check that there is a point after removal of which the remaining points are located on one side of the OY axis.

Input

The first line contains a single positive integer n (2 ≤ n ≤ 105).

The following n lines contain coordinates of the points. The i-th of these lines contains two single integers xi and yi (|xi|, |yi| ≤ 109, xi ≠ 0). No two points coincide.

Output

Print "Yes" if there is such a point, "No" — otherwise.

You can print every letter in any case (upper or lower).

Examples

Input

3
1 1
-1 -1
2 -1


Output

Yes

Input

4
1 1
2 2
-1 1
-2 2


Output

No

Input

3
1 2
2 1
4 60


Output

Yes

Note

In the first example the second point can be removed.

In the second example there is no suitable for the condition point.

In the third example any point can be removed.

import java.util.*;
public class me
{
   public static void main(String args[])
   {
      Scanner br=new Scanner(System.in);
      int n=br.nextInt();
      //int[] arr=new int[n];
      int left=0;
      int ryt=0;
      for(int i=0;i<n;i++)
      {
         int x=br.nextInt();
         int y=br.nextInt();
         if(x<0 )
         ryt++;
         else if(x>0 )
         left++;
      }if(left+1==n || ryt+1==n || left==n || ryt==n)
      System.out.println("YES");
      else
      System.out.println("NO");

   }

                /*------   sieve function to find prime   -------*/
                   static void sieve(int n,boolean[] num)
                    {
                        for (int i=2; i*i<=n; i++)
                        {
                           if (num[i] == false)
                           {
                              for (int j=i*2; j<=n; j += i)
                              num[j] = true;
                           }
                        }
                    }
                           /*-------  palindrome check  -------*/

                   static int Palindrome(String s)
                   {
                    int n = s.length();
                    for (int i = 0; i < (n/2); ++i)
                        {
                        if (s.charAt(i) != s.charAt(n - i - 1))
                         {
                        return 0;
                        }
                        }
                        return 1;
                    }


                         /*-------  DFS OF THE GIVEN ARRAYLIST  ------------*/
                    private static void dfs(ArrayList[] adjLists, boolean[] visited, int s)
                         {
                        visited[s] = true;
        //System.out.print(s + " ");
                        for(int i=0;i<adjLists[s].size();i++)
                               {
                        int w=Integer.parseInt(adjLists[s].get(i).toString());
                        if(!visited[w]){
                        dfs(adjLists, visited, w);
                                 }
                                 }
                         }

                  /*-------  THIS ID THE CHECK FOR THE PRIME   ------------------*/
                    static int isPrime(int n) {
                     for(int i=2;i<n;i++) {
                     if(n%i==0)
                     return 0;
                          }
                     return 1;
                       }

                     /*--------   TO CHECK FOR THE GCD IN LONG   -------------*/
                   public static long gcd(long x,long y)
                       {
                     if(x%y==0)
                     return y;
                     else
                     return gcd(y,x%y);
                       }

                        /*------  CHECK FOR THE ABSOLUTE IN INT    -------------*/
                   public static int abs(int a,int b)
                       {
                       return (int)Math.abs(a-b);
                       }

                /*----------   n to the power p and modulus m    --------------*/
                public static long pow(long n,long p,long m)
                       {
                       long  result = 1;
                       if(p==0)
                       return 1;
                       if (p==1)
                       return n;
                       while(p!=0)
                        {
                       if(p%2==1)
                       result *= n;
                       if(result>=m)
                       result%=m;
                       p >>=1;
                       n*=n;
                       if(n>=m)
                       n%=m;
                        }
                       return result;
                        }

        /*-------   REMOVE ZERO FROM GIVEN NUM   --------------*/
                 static int removeZero(int num) {
                   int ret = 0;
                   int ten = 1;
                   while (num>0) {
                   int dig = num % 10;
                   num /= 10;
                   if (dig>0) {
                        ret += dig * ten;
                        ten *= 10;
                            }
                             }
                   return ret;
                   }

                 /*--------    CHECK FOR LCM   -----------------*/
                  static int lcm(int x, int y)
                   {
                    int a;
                    a = (x > y) ? x : y; // a is greater number
                    while(true)
                    {
                   if(a % x == 0 && a % y == 0)
                   return a;
                   ++a;
                    }
                    }
}
