var x1,y1,x0,y0,z1,z2,z3,z4,xmin:real;
i,n,k:longint;
p:boolean;
x,y:array [1..10000] of real;
function max(a,b:real):real;
begin
if a>b then max:=a
else max:=b;
end;
function min(a,b:real):real;
begin
if a<b then min:=a
else min:=b;
end;
begin
readln(n);
for i:=1 to n do read(x[i],y[i]);
readln(x0,y0);
p:=false;
x[n+1]:=x[1];
y[n+1]:=y[1];
for i:=1 to n do
if ( (x0-x[i])*(y[i+1]-y[i])-(y0-y[i])*(x[i+1]-x[i])=0)
and(min(x[i],x[i+1])<=x0)and(x0<=max(x[i],x[i+1]))
and(min(y[i],y[i+1])<=y0)and(y0<=max(y[i],y[i+1])) then begin p:=true; break; end;
if p=true then writeln('Ha')
else begin
xmin:=x[1];
for i:=2 to n do
xmin:=min(xmin,x[i]);
x1:=xmin-1;
y1:=y0;
if x1=x0 then x1:=x1-1;
k:=0;
for i:=1 to n do begin
z1:=(x[i]-x0)*(y1-y0)-(y[i]-y0)*(x1-x0);
z2:=(x[i+1]-x0)*(y1-y0)-(y[i+1]-y0)*(x1-x0);
z3:=(x0-x[i])*(y[i+1]-y[i])-(y0-y[i])*(x[i+1]-x[i]);
z4:=(x1-x[i])*(y[i+1]-y[i])-(y1-y[i])*(x[i+1]-x[i]);
if ((z2=0)and (z1>0)and(x[i+1]<=x0)and (x[i+1]>=x1)) or((z1=0)and(z2>0)and(x[i]<=x0)and(x[i]>=x1)) then k:=k+1
else if (z1*z2<0)and(z3*z4<0)then k:=k+1;
end;
if k mod 2=1 then writeln('Vnutri')
else writeln('Vne');
end;
end.