#include<bits/stdc++.h>
#define int long long
#define double long double
using namespace std;
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }

template<class T> class Matrix
{
public:
    vector<vector<T>> A;
    Matrix(int n):A(n,vector<T>(n)){}
    Matrix(int n,int m):A(n,vector<T>(m)){}

    vector<T>& operator[](int i){ return A[i]; }
    int height(){ return A.size(); }
    int width(){ return A[0].size(); }
    static Matrix I(int n){
        Matrix mat(n);
        for(int i=0;i<n;i++) mat[i][i]=1;
        return mat;
    }

    Matrix& operator+=(Matrix& B){
        int H=height(), W=width();
        for(int i=0;i<H;i++) for(int j=0;j<W;j++)
            A[i][j]+=B[i][j];
        return *this;
    }
    Matrix& operator-=(Matrix& B){
        int H=height(), W=width();
        for(int i=0;i<H;i++) for(int j=0;j<W;j++)
            A[i][j]-=B[i][j];
        return *this;
    }
    Matrix& operator*=(Matrix& B){
        int H=height(), W=B.width(), K=width();
        vector<vector<T>> C(H,vector<T>(W));
        for(int i=0;i<H;i++) for(int j=0;j<W;j++)
            for(int k=0;k<K;k++) C[i][j]+=A[i][k]*B[k][j];
        A.swap(C);
        return *this;
    }
    Matrix operator+(Matrix& B){ return Matrix(*this)+=B; }
    Matrix operator-(Matrix& B){ return Matrix(*this)-=B; }
    Matrix operator*(Matrix& B){ return Matrix(*this)*=B; }
    Matrix pow(int K){
        Matrix res=Matrix::I(height());
        Matrix B=*this;
        while(K>0){
            if(K&1) res*=B; B*=B; K>>=1;
        }
        return res;
    }
    void print()
    {
        int H=height(), W=width();
        for(int i=0;i<H;i++){
            for(int j=0;j<W;j++) cout<<A[i][j]<<' '; cout<<endl;
        }
    }
};

const double EPS=1e-5;

template<class T> int GaussJordan(Matrix<T> &A,bool augmented=false)
{
    int n=A.height(), m=A.width();
    int rank=0;
    for(int j=0;j<m;j++){
        if(j==m-1 and augmented) break;

        int pivot=-1;
        T mx=EPS;
        for(int i=rank;i<n;i++){
            if(abs(A[i][j])>mx){
                mx=abs(A[i][j]);
                pivot=i;
            }
        }
        if(pivot==-1) continue;

        swap(A[pivot],A[rank]);
        T divisor=A[rank][j];
        for(int j2=j;j2<m;j2++) A[rank][j2]/=divisor;

        for(int i=0;i<n;i++) if(i!=rank){
            if(abs(A[i][j])>EPS){
                T k=A[i][j];
                for(int j2=j;j2<m;j2++){
                    A[i][j2]-=k*A[rank][j2];
                }
            }
        }
        rank++;
    }
    return rank;
}

template<class T> vector<T> linear_equation(Matrix<T> A,vector<T>b)
{
    int n=A.height(), m=A.width();
    Matrix<T> B(n,m+1);
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++) B[i][j]=A[i][j];
        B[i][m]=b[i];
    }
    int rank=GaussJordan(B,true);
    vector<T> res;
    for(int i=rank;i<n;i++) if(abs(B[i][m])>EPS) res;
    res.resize(n);
    for(int i=0;i<rank;i++) res[i]=B[i][m];
    return res;
}

double pow(double x,int n)
{
    double res=1.0;
    for(int i=0;i<n;i++) res*=x;
    return res;
}

double func(vector<double> &coef,int x)
{
    double res=0.0;
    for(int i=0;i<coef.size();i++) res+=coef[i]*pow(x,i);
    return res;
}

signed main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);

    int N; 
    while(cin>>N,N){
        vector<double> v(N+3);
        for(int i=0;i<N+3;i++) cin>>v[i];

        for(int i=0;i<=N+1;i++) for(int j=i+1;j<=N+2;j++){
            Matrix<double> A(N+1,N+1);
            vector<double> b(N+1);
            int row=0;
            for(int k=0;k<=N+2;k++) if(k!=i and k!=j){
                for(int l=0;l<=N;l++) A[row][l]=pow(k,l);
                b[row]=v[k];
                row++;
            }
            vector<double> coef=linear_equation(A,b);
            if(coef.empty()) continue;

            double vi=func(coef,i);
            double vj=func(coef,j);
            int cnt=0,ans;
            if(abs(vi-v[i])>EPS) cnt++,ans=i;
            if(abs(vj-v[j])>EPS) cnt++,ans=j;
            if(cnt==1){
                cout<<ans<<endl;
                goto END;
            }
        }
        END:;
    }
    return 0;
}


Measured memory_bytes: 3432