#include<bits/stdc++.h>
using namespace std;
typedef complex<double> P;
typedef pair< P , P > L;
typedef pair< P , P > S;
typedef vector<P> vecP;

double eps = 1e-8;

bool eq(double a,double b){
  return -eps < a-b && a-b < eps;  
}

double cross(P a,P b){
  return imag( b*conj(a) );
}

double dot(P a,P b){
  return real( b*conj(a) );
}

bool isParallel(L a,L b){
  a.first -= a.second;
  b.first -= b.second;
  return eq(cross( a.first,b.first ),0);
}

P getCrossLL(L l0,L l1){
  P a=l0.first, b=l0.second;
  P c=l1.first, d=l1.second;
  a-=d;b-=d;c-=d;
  return d+a+(b-a)*imag(a/c)/imag(a/c-b/c);
}

int N;
P t[50];
L lines[1250];
P u[1250*1250];

int main(){
  while(1){
    scanf("%d",&N);
    if(N==0)break;
    for(int i=0;i<N;i++){
      int x,y;
      scanf("%d %d",&x,&y);
      t[i]=P(x,y);
    }
    
    int cc=0;    
    for(int i=0;i<N;i++)
      for(int j=0;j<i;j++)
        lines[cc++]=L(t[i],t[j]);

    int uc=0;
    for(int i=0;i<cc;i++)
      for(int j=0;j<i;j++)
        if( !isParallel(lines[i],lines[j]) )
          u[uc++]=getCrossLL(lines[i],lines[j]);

    int ans=0;
    for(int i=0;i<uc;i++){
      bool flg=true;
      P cen=u[i];
      for(int j=0;j<N;j++){
        P a=t[j];
        P b=t[ (j+1==N?0:j+1) ];
        
        if( cross(a-cen,b-cen) < -eps ){
          flg=false;
          break;
        }
        
      }
      
      if(flg){
        ans=1;
        break;
      }
    }

    printf("%d\n",ans);
  }
  
  return 0;
}