#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep2(i, n) for (int i = 1; i <= (int)(n); i++)
#define ll long long
#define umap unordered_map
using graph = vector<vector<int>>;
using graph2 = vector<vector<pair<int, int>>>;
#define oorret true //std::out_of_rangeが返された時
#define oor(x) [&](){try{x;} catch(const std::out_of_range& oor){return oorret;} return x;}()
double pi = 3.141592653589793238;
ll mod(ll x, ll y){if(x>=0||x%y==0) return x%y;return y+x%y;} //mod including minus
ll dv0(ll x, ll y){if(x>=0||x%y==0)return x/y;return x/y-1;} //rnd down
ll dv1(ll x, ll y){if(x%y==0) return dv0(x,y);return dv0(x,y)+1;} //rnd up
int D;
void calculate(vector<int> c, vector<vector<int>> s, int contest,int day, vector<int> &t, ll &score){
    ll p=0;
    int a[26];
    rep(i, 26){
        a[i]=0;
    }
    rep(i, D){
        rep(j, 26){
            p-=c[j]*(i+1-a[j]);
        }
        if(i!=day){
            p+=s[i].at(t[i])+c[t[i]]*(i+1-a[t[i]]);
            a[t[i]]=i+1;
        }else{
            p+=s[day].at(contest)+c[contest]*(day+1-a[contest]);
            a[contest]=i+1;
        }
        
    }
    if(score<p){
        score=p;
        t[day]=contest;
    }
}

int main(){
cin>>D;
vector<int> c(26);
rep(i, 26){
    cin>>c[i];
}
vector<vector<int>> s(D);
int r;
rep(i, D){
    rep(j, 26){
        cin>>r;
        s[i].push_back(r);
    }
}
int M2=0,M3=0,M4=0,M5=0,M6=0;
vector<int> m2(D);
vector<int> m3(D);
vector<int> m4(D);
vector<int> m5(D);
vector<int> m6(D);
vector<int> a(26);
vector<int> m(D);

rep(i, 26){
    a[i]=0;
}
int M=0;
rep(i, D){
}
vector<int> t(D);

ll score=0;
rep(i, D){
    M=0;
    rep(j, 26){
        score-=c[j]*(i+1-a[j]);
        if(s[i].at(j)+c[j]*(i+1-a[j])>M){
            M6=M5;
            M5=M4;
            M4=M3;
            M3=M2;
            M2=M;
            M=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=m5[i];
            m5[i]=m4[i];
            m4[i]=m3[i];
            m3[i]=m2[i];
            m2[i]=m[i];
            m[i]=j;
        }else if(s[i].at(j)+c[j]*(i+1-a[j])>M2){
            M6=M5;
            M5=M4;
            M4=M3;
            M3=M2;
            M2=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=m5[i];
            m5[i]=m4[i];
            m4[i]=m3[i];
            m3[i]=m2[i];
            m2[i]=j;
        }else if(s[i].at(j)+c[j]*(i+1-a[j])>M3){
            M6=M5;
            M5=M4;
            M4=M3;
            M3=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=m5[i];
            m5[i]=m4[i];
            m4[i]=m3[i];
            m3[i]=j;
        }else if(s[i].at(j)+c[j]*(i+1-a[j])>M4){
            M6=M5;
            M5=M4;
            M4=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=m5[i];
            m5[i]=m4[i];
            m4[i]=j;
        }else if(s[i].at(j)+c[j]*(i+1-a[j])>M5){
            M6=M5;
            M5=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=m5[i];
            m5[i]=j;
        }else if(s[i].at(j)+c[j]*(i+1-a[j])>M6){
            M6=s[i].at(j)+c[j]*(i+1-a[j]);
            m6[i]=j;
        }
    }
    score+=M;
    a[m[i]]=i+1;
    t[i]=m[i];
}
rep(j, 35){
rep(i, D){
    calculate(c, s, m2[i], i, t, score);
}
rep(i, D){
    calculate(c, s, m3[i], i, t, score);
}
rep(i, D){
    calculate(c, s, m4[i], i, t, score);
}
rep(i, D){
    calculate(c, s, m5[i], i, t, score);
}
rep(i, D){
    calculate(c, s, m6[i], i, t, score);
}
rep(i, D){
    calculate(c, s, m[i], i, t, score);
}
}
rep(i, D){
    cout<<t[i]+1<<endl;
}
}


Measured memory_bytes: 3752