#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <queue>
 
using namespace std;
 
#define pb(n)	push_back(n)
#define mp(n,m) make_pair(n,m)
#define fi 	first
#define se 	second
#define all(r) (r).begin(),(r).end()
 
#define REP(i,s,e)	for(int i=(s); i<(e); i++)
#define rep(i,n)	REP(i,0,n)
#define REPE(i,s,e)	for(int i=s; i>e; i--)
#define repe(i,n)	REPE(i,n,-1)

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
 
typedef vector<vi> vii;
 
const int IMAX=((1<<30)-1)*2+1;
const int INF=100000000;
const double EPS=1e-10;
//int mod=1000000007
 

 



int main(){
	int v[5];
	while(1){
		rep(i,5) cin>>v[i];
		if(cin.eof()) break;
		vi a(3,0);
		bool f=true;
		for(int i=0; i<5; i++){
			a[v[i]-1]++;
		}
		if(a[0]>0&&a[1]>0&&a[2]>0)f=false;
		for(int i=0; i<3; i++){
			if(a[i]==0&&a[(i+1)%3]==0){
				f=false;
				// rep(j,5){
				// 	cout<<"3"<<endl;
				// }
				break;
			}
		}
		if(f){
			int k;
			for(int i=0; i<3; i++){
				if(a[i]==0){
					k=i+1;
					break;
				}
			}
			for(int i=0; i<5; i++){
				cout<<(v[i]==k%3+1?1:2)<<endl;
			}
		}
		else{
			rep(i,5){
				cout<<3<<endl;
			}
		}
	}
}