Problem: A TV show called "Guess a number!" is gathering popularity. The whole Berland, the old and the young, are watching the show.

The rules are simple. The host thinks of an integer y and the participants guess it by asking questions to the host. There are four types of acceptable questions:

  * Is it true that y is strictly larger than number x? 
  * Is it true that y is strictly smaller than number x? 
  * Is it true that y is larger than or equal to number x? 
  * Is it true that y is smaller than or equal to number x? 



On each question the host answers truthfully, "yes" or "no".

Given the sequence of questions and answers, find any integer value of y that meets the criteria of all answers. If there isn't such value, print "Impossible".

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 10000) — the number of questions (and answers). Next n lines each contain one question and one answer to it. The format of each line is like that: "sign x answer", where the sign is:

  * ">" (for the first type queries), 
  * "<" (for the second type queries), 
  * ">=" (for the third type queries), 
  * "<=" (for the fourth type queries). 



All values of x are integer and meet the inequation  - 109 ≤ x ≤ 109. The answer is an English letter "Y" (for "yes") or "N" (for "no").

Consequtive elements in lines are separated by a single space.

Output

Print any of such integers y, that the answers to all the queries are correct. The printed number y must meet the inequation  - 2·109 ≤ y ≤ 2·109. If there are many answers, print any of them. If such value doesn't exist, print word "Impossible" (without the quotes).

Examples

Input

4
&gt;= 1 Y
&lt; 3 N
&lt;= -3 N
&gt; 55 N


Output

17


Input

2
&gt; 100 Y
&lt; -100 Y


Output

Impossible

Solution (in JAVA):

Solution:
import java.util.Scanner;
public class A {
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
     
      int n=sc.nextInt();
       sc.nextLine();
       String s[]=new String[n];
       int m1=-1000000001,m2=-1000000001,m3=1000000001,m4=1000000001;
      for(int i=0;i<n;i++){
    	  s[i]=sc.nextLine();
    	}
       for(int i=0;i<n;i++){
    	   String a[]=s[i].split(" ",3);
    	  
     	  if((a[2].equals("Y") && a[0].equals(">=")) || (a[2].equals("N") & a[0].equals("<"))) { if(Integer.parseInt(a[1])>m1) m1=Integer.parseInt(a[1]);}
     	  if((a[2].equals("Y") && a[0].equals(">")) || (a[2].equals("N") & a[0].equals("<="))) { if(Integer.parseInt(a[1])>m2) m2=Integer.parseInt(a[1]); } 
     	  if((a[2].equals("Y") && a[0].equals("<=")) || (a[2].equals("N") & a[0].equals(">"))) { if(Integer.parseInt(a[1])<m3) m3=Integer.parseInt(a[1]); }
     	  if((a[2].equals("Y") && a[0].equals("<")) || (a[2].equals("N") & a[0].equals(">="))) { if(Integer.parseInt(a[1])<m4) m4=Integer.parseInt(a[1]); } 
       }
      
      String s1="",s2="";
      int max=-1000000001,min=1000000001;
      if(m1!=m2 && Math.max(m1, m2)==m1) { s1=">="; max=m1; }
      else if(m1!=m2 && Math.max(m1, m2)==m2) { s1=">"; max=m2; }
     
      if(m3!=m4 && Math.min(m3, m4)==m3) { s2="<="; min=m3; }
      else if(m3!=m4 && Math.min(m3, m4)==m4) { s2="<"; min=m4; }
      
      if(m1==m2 && m1!=-1000000001) { s1=">"; max=m1; }
      if(m3==m4 && m3!=1000000001) { s2="<";  min=m3; }
      
      
      if(max>min &&  max!=-1000000001 && min!=1000000001) { System.out.println("Impossible"); return; }
      if(max==min &&  max!=-1000000001 && min!=1000000001) { 
        if(s1.equals(">=") && s2.equals("<=")) { System.out.println(max); return; }
        else { System.out.println("Impossible"); return; }
      
      }
      if(max<min &&  max!=-1000000001 && min!=1000000001) {
    	  if(s1.equals(">=")) { System.out.println(max); return; }
    	  if(s2.equals("<=")) { System.out.println(min); return; }
    	  if(s1.equals(">") && s2.equals("<") && Math.abs(min-max)>1) { System.out.println(max+1); return; }
    	  else if(s1.equals(">") && s2.equals("<") && Math.abs(min-max)<=1) { System.out.println("Impossible"); return; }
    	  
       }
      if(max==-1000000001 && min!=1000000001) System.out.println(min-2);
      else if(max!=-1000000001 || min==1000000001) System.out.println(max+2);
      else if(max==-1000000001 && min==1000000001) System.out.println("1");
          
   }
}