var
s,ss:string;
n,x,k,i,j,h,t:longint;
ans:char;
function max(a,b:longint):longint;
begin
if a>b then exit(a);
exit(b);
end;
function min(a,b:longint):longint;
begin
if a<b then exit(a);
exit(b);
end;
begin
readln(n);
h:=-2333333;t:=2333333;//用作比大小
for i:=1 to n do
begin
readln(s);
k:=pos(' ',s);//分离出大于、小于或等于符号
ss:=copy(s,1,k-1);
delete(s,1,k);
k:=pos(' ',s);//分离出数字
val(copy(s,1,k-1),x);
ans:=s[k+1];
if ans='N' then//如果是'N'的话,就得把符号反转(不包括它的所有情况)
begin
if ss='>' then ss:='<='
else if ss='<' then ss:='>='
else if ss='>=' then ss:='<'
else if ss='<=' then ss:='>';
end;
if ss='>' then h:=max(h,x+1);//最小也要比x大1
if ss='>=' then h:=max(h,x);//最小就相同
if ss='<' then t:=min(t,x-1);//最大顶多比x小1
if ss='<=' then t:=min(t,x);//最大就相同
end;
if h<=t then writeln(h)//如果满足所有大于(等于)的,也满足所有小于(等于)的,它就是最小的(选h是因为它每次比较都是选最小的比,不停动态规划成最小了)
else writeln('Impossible');
end.