#include<bits/stdc++.h>
using namespace std;
int n,a,f;
vector<int> t;
int c0,c1,c2,c3;

int main(){
  cin>>n;
  for(int i=0;i<n;i++){
    cin>>a;
    if(a==0)c0++;
    if(a==1)c1++;
    if(a==2)c2++;
    if(a==3)c3++;
    if(a>=2)t.push_back(a);
  }
  n=t.size();
  sort(t.begin(),t.end());

  if(c2>0&&c3==1&&t.back()==3){
    f=1;    
    swap(t[n-1],t[n-2]);
  }

  
  if(c0==0){
    for(int i=0;i<n;i++)cout<<t[i]<<endl;
    for(int i=0;i<c1;i++)cout<<1<<endl;
    return 0;
  }
  
  if(c0%2==0){
    for(int i=0;i<n;i++)cout<<t[i]<<endl;
    for(int i=0;i<c0;i++)cout<<0<<endl;
    for(int i=0;i<c1;i++)cout<<1<<endl;
    return 0;
  }

  if(c1>0){
    for(int i=0;i<n;i++)cout<<t[i]<<endl;
    for(int i=0;i<c0-1;i++)cout<<0<<endl;
    cout<<1<<endl;
    cout<<0<<endl;
    for(int i=0;i<c1-1;i++)cout<<1<<endl;
    return 0;
  }
  
  if(n>0){
    
    if(f){
      if(c2==1)sort(t.begin(),t.end());
    }else sort(t.begin(),t.end());
    
    for(int i=1;i<n;i++)cout<<t[i]<<endl;
    for(int i=0;i<c0-1;i++)cout<<0<<endl;
    cout<<t[0]<<endl;
    cout<<0<<endl;
    return 0;
  }
  
  for(int i=0;i<c0;i++)cout<<0<<endl;
  return 0;
}