// nemesGyak000.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> nbitnum;
int n;
cin >> n;
int level = 0;
for (size_t i = 0; i < n; i++)
{
int ins;
cin >> ins;
if (ins == 0) {
nbitnum.push_back(0);
level++;
}
else if (ins == 1) {
nbitnum.push_back(1);
level++;
}
else if (ins == 2) {
nbitnum.pop_back();
level--;
}
else if (ins == 3) {
for (int i = nbitnum.size()-1; i >= 0; i--)
{
if (nbitnum[i] == 0) nbitnum[i] = 1;
else {
nbitnum[i] = 0;
break;
}
}
}
else if (ins == 4) {
bool tV = false; //testValue
for (int i = nbitnum.size()-1; i >= 0; i--)
{
if (nbitnum[i] == 1) nbitnum[i] = 0;
else {
nbitnum[i] = 1;
tV = true;
break;
}
}
if (!tV) {
nbitnum[0] = 1;
nbitnum.push_back(0);
}
}
}
string res = "";
bool hadOne = false;
for (size_t i = 0; i < nbitnum.size(); i++)
{
if (nbitnum[i] == 0 && hadOne) {
res += '0';
}
else if (nbitnum[i] == 1) {
hadOne = true;
res += '1';
}
}
if (res == "") res = "0";
cout << level << "\n" << res << "\n";
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file