Go: package main

import (
	"bufio"
	"os"
	"strconv"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func main() {
	for scanner.Scan() {
		h := make([]int, 5)
		h[0], _ = strconv.Atoi(scanner.Text())
		if h[0] == 0 {
			break
		}
		for i := 1; i <= 4; i++ {
			scanner.Scan()
			h[i], _ = strconv.Atoi(scanner.Text())
		}
		tbl := make([]bool, 3)
		aiko := false
		for _, v := range h {
			tbl[v-1] = true
		}
		if tbl[0] && tbl[1] && tbl[2] { // 全ての手があるあいこ
			aiko = true
		}
		if h[0] == h[1] && h[1] == h[2] && h[2] == h[3] && h[3] == h[4] {
			aiko = true
		}
		if aiko {
			fmt.Printf("3\n3\n3\n3\n3\n")
		} else {
			win := 0
			if !tbl[0] {
				win = 2
			}
			if !tbl[1] {
				win = 3
			}
			if !tbl[2] {
				win = 1
			}
			for i := 0; i < 5; i++ {
				if h[i] == win {
					fmt.Println(1)
				} else {
					fmt.Println(2)
				}
			}
		}
	}
}

C++: #include <iostream>
#include <cmath>
#include <string>
using namespace std;
const int INF=2<<20;
typedef long long int llf;
int main() {
	// your code goes here
	
	int num[5];
	while(cin >> num[0] && num[0] != 0){
	for(int i=1;i<5;i++)
	cin >> num[i];
	int taked[4]={};
	for(int i=0;i<5;i++)
	taked[num[i]%3]=1;
	for(int i=0;i<5;i++)
	if(taked[(num[i]+1)%3])
		if(taked[(num[i]+2)%3])
			cout <<3<<endl;
		else
			cout <<1<< endl;
	else
		if(taked[(num[i]+2)%3])
			cout <<2<<endl;
		else
			cout <<3<< endl;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

int main()
{
	while(1){
		int a[5],b[4]={0};
		for(int i=0;i<5;i++){
			if(!(cin>>a[i]))	return 0;
			b[a[i]]++;
		}

		if(b[1]==5 || b[2]==5 || b[3]==5 || b[1]*b[2]*b[3]>0)
			for(int i=0;i<5;i++)	cout<<3<<endl;
		else{
			int win;
			if(b[1]==0)	win=2;
			if(b[2]==0)	win=3;
			if(b[3]==0)	win=1;
			for(int i=0;i<5;i++)	cout<<(a[i]==win?1:2)<<endl;
		}
	}
}

C++: // AOJ 0205
#include<iostream>
#include<set>

int main()
{
	int a[5];
	while( std::cin >> *a, *a )
	{
		std::set<int> s;
		s.insert( *a );
		for( int i = 1; i != 5; ++i )
		{
			std::cin >> a[i];
			s.insert( a[i] );
		}

		if( s.size() == 3 )
			for( int i = 0; i != 5; ++i )
				std::cout << 3 << std::endl;
		else
		{
			int win = *s.begin() == 1 ? *( ++s.begin() ) == 2 ? 1 : 3 : 2;
			for( int i = 0; i != 5; ++i )
				std::cout << ( a[i] == win ? 1 : 2 ) << std::endl;
		}
	}

	return 0;
}

C++: #include <iostream>
using namespace std;

int hand[5];
//iツ氾板姪堋づ個偲ィツつェツ堕シツづづづアツづ按甘鳴係ツつゥ
int sarch(int n)
{
	int g=0,t=0,p=0;//1,2,3
	for(int i=0;i<5;i++){
		switch(hand[i]){
			case 1:
				g++;
				break;
			case 2:
				t++;
				break;
			case 3:
				p++;
				break;
			default:
				break;
		}
	}
	switch(hand[n]){
		case 1:
			if(p==0 && t!=0)
				return 1;
			else if(t==0 && p!=0)
				return 2;
			else
				return 3;
			break;
		case 2:
			if(g==0 && p!=0)
				return 1;
			else if(g!=0 && p==0)
				return 2;
			else
				return 3;
			break;
		case 3:
			if(t==0 && g!=0)
				return 1;
			else if(t!=0 && g==0)
				return 2;
			else
				return 3;
			break;
	}
	return 0;
}

int main()
{
	while(cin >> hand[0]){
		if(hand[0]==0)
			break;
		for(int i=1;i<5;i++){
			cin >> hand[i];
		}
		for(int i=0;i<5;i++){
			cout << sarch(i) <<endl;
		}
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main() {
	int a[5];
	while(cin >> a[0], a[0]) {
		for(int i = 1; i < 5; i++)
			cin >> a[i];
		int b[3] = {};
		for(int i = 0; i < 5; i++)
			b[a[i]-1] = 1;
		int c = b[0] + b[1] + b[2];
		if(c != 2) {
			for(int i = 0; i < 5; i++)
				cout << 3 << endl;
		}
		else {
			int none;
			for(int i = 0; i < 3; i++)
				if(b[i] == 0)
					none = i;

			for(int i = 0; i < 5; i++) {
				if((none-(a[i]-1)+3)%3 == 1) {
					cout << 2 << endl;
				}
				else {
					cout << 1 << endl;
				}
			}
		}
	}
}

C++: #include<iostream>
using namespace std;
int main(){
long x[5],y[5],h[4],i;
while(cin>>x[0]){
if(x[0]==0)break;
for(i=1;i<=3;i++)h[i]=0;
for(i=1;i<5;i++){cin>>x[i];h[x[i]]++;}
for(i=1;i<=3;i++)if(h[i]==0)break;
if(i==4||h[i]==5){
for(i=0;i<5;i++)cout<<"3"<<endl;
}else if(i==1){
for(i=0;i<5;i++)cout<<x[i]-1<<endl;
}else if(i==2){
for(i=0;i<5;i++)cout<<(x[i]+1)%3<<endl;
}else if(i==3){
for(i=0;i<5;i++)cout<<x[i]<<endl;
}
}
return 0;
}

C++: #include <cstdio>
using namespace std;

int main(){
    int a[5];
    while(scanf("%d%d%d%d%d", a, a+1, a+2, a+3, a+4)!=EOF){
        int b = 0;
        for(int x = 0; x < 5; x++){
            b = b | (1 << (a[x]-1));
        }
        if( b == 1 || b == 2 || b == 4 || b == 7){
            printf("3\n3\n3\n3\n3\n");
        }else if( b == 3 ){
            for(int x = 0; x < 5; x++){
                printf("%d\n", (a[x]-1)?2:1);
            }
        }else if( b == 5 ){
            for(int x = 0; x < 5; x++){
                printf("%d\n", (a[x]-3)?2:1);
            }
        }else if( b == 6 ){
            for(int x = 0; x < 5; x++){
                printf("%d\n", (a[x]-2)?2:1);
            }
        }
    }
    return 0;
}

C++: #include<stdio.h>
int main()
{
	int a[5],i,g,t,p,r[5];
	while(1){
		g=p=t=0;
		scanf("%d",&a[0]);
		if(a[0]==0){
			break;
		}
		scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);
		for(i=0;i<5;i++){
			switch(a[i]){
			case 1:
				g++;
				break;
			case 2:
				t++;
				break;
			case 3:
				p++;
				break;
			}
		}
		if((g!=0&&t!=0&&p!=0)||g==5||t==5||p==5){
			for(i=0;i<5;i++){
				r[i]=3;
			}
		}else if(g==0){
			for(i=0;i<5;i++){
				if(a[i]==2){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}else if(t==0){
			for(i=0;i<5;i++){
				if(a[i]==3){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}else{
			for(i=0;i<5;i++){
				if(a[i]==1){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}
		for(i=0;i<5;i++){
			printf("%d\n",r[i]);
		}
	}
	return 0;
}

C++: #include<iostream>
int main(){
	int a[5];
	bool r,s,p;
	bool as,bs,cs,ds;
	while(1){
		for(int i=0;i<5;i++){
			std::cin>>a[i];
			if(a[i]==1)
				r=true;
			else if(a[i]==2)
				s=true;
			else
				p=true;
		}
		if(r==true && s==true && p==true)ds==true;
		if(r==true && s==true){
			as==true;
			bs==false;
		}
		if(r==true && p==true){
			cs==true;
			as==false;
		}
		 if(p==true && s==true){
			bs==true;
			cs==false;
		}
		for(int i=0;i<5;i++){
			if(ds==true)
				std::cout<<3<<std::endl;
			if(as==true || bs==true || cs==true)
				std::cout<<1<<std::endl;
			if(as==false || bs==false || cs==false)
				std::cout<<2<<std::endl;
		}
	return 0;
}

C++: #include<stdio.h>
int main()
{
	int a[5],i,g,t,p,r[5];
	while(1){
		g=p=t=0;
		scanf("%d",&a[0]);
		if(a[0]==0){
			break;
		}
		scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);
		for(i=0;i<5;i++){
			switch(a[i]){
			case 1:
				g++;
				break;
			case 2:
				t++;
				break;
			case 3:
				p++;
				break;
			}
		}
		if((g!=0&&t!=0&&p!=0)||g==5||t==5||p==5){
			for(i=0;i<5;i++){
				r[i]=3;
			}
		}else if(g==0){
			for(i=0;i<5;i++){
				if(a[i]==2){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}else if(t==0){
			for(i=0;i<5;i++){
				if(a[i]==3){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}else{
			for(i=0;i<5;i++){
				if(a[i]==1){
					r[i]=1;
				}else{
					r[i]=2;
				}
			}
		}
		for(i=0;i<5;i++){
			printf("%d\n",r[i]);
		}
	}
	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main()
{
    int num[5];
    while(cin>>num[0],num[0]){
        vector<int> hand(5,0);
        hand[num[0]]=1;
        for(int i=1;i<5;i++){
            cin>>num[i];
            hand[num[i]]++;
        }
        if(hand[1]&&hand[2]&&hand[3]||hand[1]==5||hand[2]==5||hand[3]==5)
            for(int i=0;i<5;i++)cout<<"3\n";
        else {
            int win;
            if(!hand[3])win=1;
            else if(!hand[1])win=2;
            else win=3;
            for(int i=0;i<5;i++){
                if(win==num[i])cout<<"1\n";
                else cout<<"2\n";
            }
        }
    }
}