// 2019/04/27 Tazoe

#include <iostream>
using namespace std;

void c2d(int c[8], int d[8], int n)
{
	for(int i=0; i<8; i++){
		d[i] = c[(n+i)%8];
	}
}

void prd(int d[8])
{
	for(int i=0; i<8; i++){
		cout << d[i];

		if(i==7){
			cout << endl;
		}
		else{
			cout << ' ';
		}
	}
}

int cnt(int p[8], int d[8])
{
	int c = 0;

	for(int i=0; i<8; i++){
		if(p[i]>=d[i]){
			c += d[i];
		}
		else{
			c += p[i];
		}
	}

	return c;
}



int main()
{
	int c[8] = {1, 2, 1, 2, 1, 4, 1, 4};

	while(true){
		int p[8];
		cin >> p[0];

		if(cin.eof())
			break;

		for(int i=1; i<8; i++){
			cin >> p[i];
		}

		int d[8];
		int n = -1;
		int m = -1;

		c2d(c, d, 0);  // prd(d);
		if(m<cnt(p, d)){
			n = 0;
			m = cnt(p, d);
		}

		c2d(c, d, 2);  // prd(d);
		if(m<cnt(p, d)){
			n = 2;
			m = cnt(p, d);
		}

		c2d(c, d, 6);  // prd(d);
		if(m<cnt(p, d)){
			n = 6;
			m = cnt(p, d);
		}

		c2d(c, d, 4);  // prd(d);
		if(m<cnt(p, d)){
			n = 4;
			m = cnt(p, d);
		}

		c2d(c, d, 1);  // prd(d);
		if(m<cnt(p, d)){
			n = 1;
			m = cnt(p, d);
		}

		c2d(c, d, 3);  // prd(d);
		if(m<cnt(p, d)){
			n = 3;
			m = cnt(p, d);
		}

		c2d(c, d, 7);  // prd(d);
		if(m<cnt(p, d)){
			n = 7;
			m = cnt(p, d);
		}

		c2d(c, d, 5);  // prd(d);
		if(m<cnt(p, d)){
			n = 5;
			m = cnt(p, d);
		}


		c2d(c, d, n);
		prd(d);
	}

	return 0;
}

