#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <cmath>
#include <bitset>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <complex>
#include <unordered_map>
#include <unordered_set>
#include <random>
#include <cassert>
#include <fstream>
#include <utility>
#include <functional>
#include <time.h>
#include <stack>
#include <array>
#include <list>
#define popcount __builtin_popcount
using namespace std;
typedef long long int ll;
typedef pair<int, int> P;
int d;
int c[27];
int s[366][27];
int calc(vector<int> t){
    int last[26]={};
    vector<int> ret(d);
    int ans=0;
    for(int i=0; i<d; i++){
        ans+=s[i][t[i]];
        last[t[i]]=i+1;
        for(int j=0; j<26; j++){
            ans-=c[j]*(i+1-last[j]);
        }
        ret[i]=ans;
    }
    return ans;
}
mt19937 mt(334);
void gen(){
    d=365;
    uniform_int_distribution<> rndc(0, 100), rnds(0, 20000);
    for(int i=0; i<26; i++) c[i]=rndc(mt);
    for(int i=0; i<d; i++) for(int j=0; j<26; j++) s[i][j]=rnds(mt);
}
int main()
{
    cin>>d;
    for(int i=0; i<26; i++) cin>>c[i];
    for(int i=0; i<d; i++) for(int j=0; j<26; j++) cin>>s[i][j];
  //gen();
    vector<int> t(d);
    
    int last[26]={};
    for(int i=0; i<d; i++){
        int kmx=0, mx=-1e9;
        for(int k=0; k<26; k++){
            int sum=s[i][k];
            int myon=last[k];
            last[k]=i+1;
            for(int j=0; j<26; j++){
                sum-=c[j]*(i+1-last[j]);
            }
            last[k]=myon;
            if(mx<sum) kmx=k, mx=sum;
        }
        t[i]=kmx;
        last[kmx]=i+1;
    }

    uniform_int_distribution<> rndk(0, d-1), rndq(0, 25), rndk2(0, d-2);
    clock_t start = clock();
    int ans=calc(t);
    int cnt=0;
    while((double)(clock()-start)/CLOCKS_PER_SEC<1.9){
        if(cnt>=5){
            int k;
            k=rndk2(mt);
            int pr=t[k], q=t[k+1], ansp=ans;
            ans-=s[k][pr];
            ans+=s[k][q];
            ans-=s[k+1][q];
            ans+=s[k+1][pr];
            int last[2]={};
            for(int i=0; i<d; i++){
                if(t[i]==pr) last[0]=i+1;
                else if(t[i]==q) last[1]=i+1;
                ans+=c[pr]*(i+1-last[0]);
                ans+=c[q]*(i+1-last[1]);
            }
            swap(t[k], t[k+1]);
            last[0]=last[1]=0;
            for(int i=0; i<d; i++){
                if(t[i]==pr) last[0]=i+1;
                else if(t[i]==q) last[1]=i+1;
                ans-=c[pr]*(i+1-last[0]);
                ans-=c[q]*(i+1-last[1]);
            }
            if(ansp>ans){
                swap(t[k], t[k+1]);
                ans=ansp;
            }
            cnt=0;
            continue;
        }
        int k, q;
        k=rndk(mt), q=rndq(mt);
        if(t[k]==q){
            continue;
        }
        int pr=t[k], ansp=ans;
        ans-=s[k][pr];
        ans+=s[k][q];
        int last[2]={};
        for(int i=0; i<d; i++){
            if(t[i]==pr) last[0]=i+1;
            else if(t[i]==q) last[1]=i+1;
            ans+=c[pr]*(i+1-last[0]);
            ans+=c[q]*(i+1-last[1]);
        }
        t[k]=q, last[0]=last[1]=0;
        for(int i=0; i<d; i++){
            if(t[i]==pr) last[0]=i+1;
            else if(t[i]==q) last[1]=i+1;
            ans-=c[pr]*(i+1-last[0]);
            ans-=c[q]*(i+1-last[1]);
        }
        if(ansp>ans){
            t[k]=pr;
            ans=ansp;
          cnt++;
        }
    }
  //cout<<1000000+calc(t)<<endl;
    for(int i=0; i<d; i++){
        cout<<t[i]+1<<endl;
    }
	return 0;
}


Measured memory_bytes: 3620