#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <queue>
#include <tuple>
#include <set>
#include <random>

using namespace std;
constexpr int D = 365;
vector<int> c(26);
vector< vector<int> > s(D, vector<int>(26));
vector<int> num(D), num2(D), ans(D);

int score() {
    int sat = 0;
    vector<int> last(26);
    for (int d=0; d<D; d++) {
        int j = num[d] - 1;
        last[j] = d + 1;
        for(int i=0; i<26; i++) {
            sat -= (d + 1 - last[i]) * c[i];
        }
        sat += s[d][j];
    }
        // assert(1 <= out[d] and out[d] <= 26)
        // j = out[d] - 1
        // last[j] = d + 1
        // for i in range(26):
        //     sat -= (d + 1 - last[i]) * c[i]
        // sat += s[d][j]
    return sat;
}

int main(void) {
    int g;
    cin >> g;
    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];
        }
    }

    // for(int i=0; i<D; i++) {
    //     num[i] = num2[i] = (i%26) + 1;
    // }

    int temp = numeric_limits<int>::min();
    vector<int> v(26);
    iota(v.begin(), v.end(), 0);
    random_device seed_gen;
    // mt19937 engine(seed_gen());
    default_random_engine engine(seed_gen());
    uniform_int_distribution<> dist(0, 25);
    int loop = 250000;
    while(--loop) {
        int l = dist(engine);
        int r = dist(engine);
        if(l == r) continue;
        swap(v[l], v[r]);
        // next_permutation(v.begin(), v.end());
        for(int d=0; d<D; d++) {
            num[d] = v[d%26] + 1;
        }
        // for(int d=l; d<D; d+=26) {
        //     num[d] = v[l] + 1;
        // }
        // for(int d=r; d<D; d+=26) {
        //     num[d] = v[r] + 1;
        // }
        if(int sat = score(); sat > temp) {
            ans = num;
            temp = sat;
        // } else {
        //     num[l] = ans[l];
        //     num[r] = ans[r];
        }
    }
    // for(int zurasu=0; zurasu<26; zurasu++) {
    //     for(int i=0; i<D; i++) {
    //         num[i] = (i+zurasu)%26 + 1;
    //     }
    //     if(int sat = score(); sat > temp) {
    //         ans = num;
    //         temp = sat;
    //     }
    // }
    // for(int zurasu=0; zurasu<26; zurasu++) {
    //     for(int i=0; i<D; i++) {
    //         num[i] = 26 - (i+zurasu)%26;
    //     }
    //     if(int sat = score(); sat > temp) {
    //         ans = num;
    //         temp = sat;
    //     }
    // }
    // int temp = score();
    // int loop = 100000;
    // random_device seed_gen;
    // // mt19937 engine(seed_gen());
    // default_random_engine engine(seed_gen());
    // uniform_int_distribution<> dist(0, D-1);
    // while(loop--) {
    //     int l = dist(engine);
    //     int r = dist(engine);
    //     swap(num2[l], num2[r]);
    //     // shuffle(num2.begin(), num2.begin()+26, engine);
    //     if(int sat = score(); sat > temp) {
    //         num[l] = num2[l];
    //         num[r] = num2[r];
    //         temp = sat;
    //     } else {
    //         num2[l] = num[l];
    //         num2[r] = num[r];
    //     }
    // }
    // for(int a=0; a<100000; a++) {
    //     for(int i=0; i<D; i++) {
    //         num[i] = dist(engine);
    //     }
    //     if(int sat = score(); sat > temp) {
    //         ans = num;
    //         temp = sat;
    //     }
    // }
    
    // ans = num;
    for(int i=0; i<D; i++) {
        cout << ans[i] << endl;
    }
    cerr << temp << endl;
    return 0;
}


Measured memory_bytes: 3688