#include
#include
#include
using namespace std;
int main() {
int n;
cin >> n;
vector<int> input(n);
for (int i = 0; i < n; ++i) {
cin >> input[i];
}
vector<int> output(n);
stack<int> stack1, stack2;
int current_num = 1;
for (int i = 0; i < n; ++i) {
if (!stack1.empty() && stack1.top() == current_num) { output[i] = 1; stack1.pop(); ++current_num;
} else if (!stack2.empty() && stack2.top() == current_num) {
output[i] = 2; stack2.pop(); ++current_num;
} else if (!stack1.empty() && !stack2.empty()) { cout << "IMPOSSIBLE" << endl; return 0;
} else if (stack1.empty()) { stack1.push(input[i]); output[i] = 1;
} else if (stack2.empty()) { stack2.push(input[i]); output[i] = 2; }
}
for (int i = 0; i < n; ++i) {
cout << output[i] << " ";
}
return 0;
}