#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <map>
#include <unordered_map>
#include <queue>
#include <bitset>
#include <limits>
#include <numeric>

using ld = long double;
using ll = long long int;
using ul = unsigned long long int;

namespace lamlib
{
	/* constant */
	constexpr double epsilon = std::numeric_limits<double>::epsilon();
	constexpr double pi = std::acos(-1.0);

	/* math */
	template<class T> inline T abs(const T &a){ return (a>0) ? a : -a; }
	ul inline digit(const ul &num){ return static_cast<ul>(std::log10(num+epsilon))+1; }

	/* algorithm */
	ul gcd(const ul &a,const ul &b) { return (!b) ? a : gcd(b,a%b); }
	ul lcm(const ul &a,const ul &b) { return (a/gcd(a,b))*b; } // a/gcd(a,b)*b <=> (a*b)/gcd(a,b)
	std::vector<bool> eratosthenes(const ul &n)
	{
		std::vector<bool> prime_candidate(n,true);
		prime_candidate[0] = prime_candidate[1] = false;
		for(ul i = 2;i*i < n;++i)
		{
			if(!prime_candidate[i]) continue;
			for(ul j = 2;i*j < n;++j) prime_candidate[i*j] = false;
		}
		return prime_candidate;
	}
	ll rho_method(const ll &n)
	{
		auto f = [&](const ll &xi){ return (xi*xi+1)%n; };
		ll x = 2, y = 2, d = 1;
		while(d == 1)
		{
			x = f(x);
			y = f(f(y));
			d = lamlib::gcd(lamlib::abs(x-y),n);
		}
		return d;
	}
	// 素因数分解(試し割)
	std::vector<ll> prime_factorization_trial(const ll &n)
	{
		ll num = n;
		std::vector<ll> prime;
		for(ll i = 2;i*i <= n;++i)
		{
			while((num%i) == 0)
			{
				prime.emplace_back(i);
				num /= i;
			}
		}
		if(num > 1) prime.emplace_back(num);
		return prime;
	}

	/* string */
	inline ul same_char_count(const std::string s,const char &ch){ return std::count(std::cbegin(s),std::cend(s),ch); }
}

// std::cout << std::fixed << std::setprecision(15) << std::endl;

// constant
constexpr ll type = 26;

ll solve(const std::vector<ll> &c, const std::vector<ll> &s, std::vector<ll> last, ll satisfaction, const ll &day, const ll &contest)
{
	satisfaction += s[day*type+contest];
	last[contest] = day+1;
	ll decline = 0;
	for(ll j = 0;j < type;++j) decline += c[j]*(last[contest]-last[j]);
	satisfaction -= decline;
	return satisfaction;
}

int main(int argc,char *argv[])
{
	// input
	ll d;
	std::cin >> d;
	std::vector<ll> c(type, 0);
	ll cs = 0;
	for(ll i = 0;i < type;++i){ std::cin >> c[i]; cs += c[i];}
	std::vector<ll> s(d*type, 0);
	for(ll i = 0;i < d*type;++i) std::cin >> s[i];
	
	//std::cerr << "max: " << cs << std::endl;

	// output
	std::vector<ll> last(type,0);
	ll satisfaction = 0, score = 0;
	for(ll day = 0;day < d;++day)
	{
		ll index = 0;
		ll greed = solve(c,s,last,satisfaction,day,index);
		ll g_score = (1000000 + greed) > 0 ? (1000000 + greed) : 0;
		for(ll contest = 1;contest < type;++contest)
		{
			ll tmp = solve(c,s,last,satisfaction,day,contest);
			ll s_tmp = (1000000 + tmp) > 0 ? (1000000 + tmp) : 0;
			if(s_tmp > g_score)
			{
				greed = tmp;
				index = contest;
				g_score = s_tmp;
			}
		}
		greed = solve(c,s,last,satisfaction,day,index);
		satisfaction = greed;
		last[index] = day+1;
		score = g_score;
		//std::cerr << day << "-day" << " " << "contest: " << index << " " << satisfaction << " " << score << std::endl;
		std::cout << index+1 << std::endl;
	}
	
	score = (1000000 + satisfaction) > 0 ? (1000000 + satisfaction) : 0;
	//std::cerr << "satisfaction: " << satisfaction << std::endl;
	//std::cerr << "score: "<< score << std::endl;

	return 0;
}

Measured memory_bytes: 3712