#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define MAXN 10
#define EPS (1e-3)
#define zero(x) (fabs(x)<EPS)
#define cl(xx,yy) memset((xx),(yy),sizeof((xx)))
using namespace std;

double ans[MAXN],f[MAXN],A[MAXN][MAXN];

void Gauss(double A[][MAXN],int n)
{
    for(int i=0;i<n;i++)
    {
        if(zero(A[i][i]))
        {
            for(int j=i+1;j<n;j++)
                if(!zero(A[j][i]))
                {
                    for(int k=0;k<=n;k++)
                        swap(A[i][k],A[j][k]);
                    break;
                }
        }
        for(int j=i+1;j<n;j++)
            if(!zero(A[j][i]))
            {
                double t=-A[j][i]/A[i][i];
                for(int k=i;k<=n;k++)
                {
                    A[j][k]+=(t*A[i][k]);
                    //cout<<A[j][k]<<endl;
                }
            }
    }
    /*for(int i=0;i<n;i++)
    {
        for(int j=0;j<=n;j++)
            printf("%lf ",A[i][j]);
        puts("");
    }
    puts("\n");*/
    for(int i=n-1;i>=0;i--)
    {
        double sum=0;
        for(int j=i+1;j<n;j++)
            sum+=A[i][j]*ans[j];
        ans[i]=(A[i][n]-sum)/A[i][i];
    }
    /*for(int j=0;j<n;j++)
        printf("%lf ",ans[j]);
    puts("\n");*/
}
int pows(int a,int b)
{
    if(b==0)
        return 1;
    int fac=1;
    for(int i=1;i<=b;i++)
        fac*=a;
    return fac;
}
int main()
{
    //freopen("in.txt","r",stdin);
    int d;
    while(~scanf("%d",&d)&&d)
    {
        for(int i=0;i<d+3;i++)
            scanf("%lf",f+i);
        bool check[MAXN]={0};
        for(int i=0;i<d+3;i++)
            if(!check[i])
            {
                int next=(i+1)%(d+3);
                cl(A,0);
                int cnt=0;
                for(int j=0;j<d+3;j++)
                {
                    if(j==i||j==next)
                        continue;
                    for(int k=0;k<=d;k++)
                    {
                        A[cnt][k]=pows(j,d-k);
                        //printf("%lf ",A[cnt][k]);
                    }
                    A[cnt][d+1]=f[j];
                    //puts("");
                    cnt++;
                }
                //puts("");
                /*for(int ii=0;ii<=d;ii++)
                {
                    for(int j=0;j<=d+1;j++)
                        printf("%lf ",A[ii][j]);
                    puts("");
                }
                puts("\n");*/
                Gauss(A,d+1);
                double tmp1=0,tmp2=0;
                for(int j=0;j<=d;j++)
                    tmp1+=pows(i,d-j)*ans[j];
                for(int j=0;j<=d;j++)
                    tmp2+=pows(next,d-j)*ans[j];
                //cout<<tmp1<<endl;
                //cout<<tmp2<<endl;
                //cout<<endl;
                if(zero(tmp1-f[i])&&!zero(tmp2-f[next]))
                {
                    printf("%d\n",next);
                    break;
                }
                else if(!zero(tmp1-f[i])&&zero(tmp2-f[next]))
                {
                    printf("%d\n",i);
                    break;
                }
                //else
                //    check[i]=check[next]=1;
            }
        //cout<<"??"<<endl;
    }
    return 0;
}

Measured memory_bytes: 1228