#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// using namespace __gnu_pbds;
// typedef tree<int, null_type, less<int>, rb_tree_tag,tree_order_statistics_node_update> ordered_set;
#define ll long long
#define ull unsigned long long
#define int long long
int dp[5005][3] , a[505] , n;
int rec(int idx , int prev ) {
if (idx == 0 ) {
return 0 ;
}
if (idx <0)
return 1e9;
if (dp[idx][prev] != -1) return dp[idx][prev] ;
int ans= rec(idx -1 , prev)+1;
if ((a[idx]==1 || a[idx ]==3) && prev!=1) {
ans = min(ans , rec(idx - 1 , 1));
}
if ((a[idx]==2 || a[idx]==3) && prev!=2) {
ans = min(ans , rec(idx - 1 , 2));
}
return dp[idx][prev] = ans;
}
void solve() {
cin >> n ;
for(int i = 1 ; i <= n ; i++) {
cin >> a[i] ;
}
memset(dp , -1 , sizeof(dp)) ;
cout << rec(n , 0) ;
}
signed main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int tc = 1;
// cin >> tc;
while (tc--) {
solve();
};
return 0;
}
ICAgICNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgogICAgLy8gI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgogICAgLy8gI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgLy8gdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiAgICAvLyB0eXBlZGVmIHRyZWU8aW50LCBudWxsX3R5cGUsICBsZXNzPGludD4sIHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gb3JkZXJlZF9zZXQ7CiAgICAjZGVmaW5lIGxsIGxvbmcgbG9uZwogICAgI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiAgICAjZGVmaW5lIGludCBsb25nIGxvbmcKCiAgICBpbnQgZHBbNTAwNV1bM10gLCBhWzUwNV0gLCBuOwogICAgaW50IHJlYyhpbnQgaWR4ICwgaW50IHByZXYgKSB7CiAgICAgICAgaWYgKGlkeCA9PSAwICkgewogICAgICAgICAgICByZXR1cm4gMCA7CiAgICAgICAgfQogICAgICAgIGlmIChpZHggPDApCiAgICAgICAgICAgIHJldHVybiAxZTk7CiAgICAgICAgaWYgKGRwW2lkeF1bcHJldl0gIT0gLTEpIHJldHVybiBkcFtpZHhdW3ByZXZdIDsKICAgICAgICBpbnQgYW5zPSByZWMoaWR4IC0xICwgcHJldikrMTsKICAgICAgICBpZiAoKGFbaWR4XT09MSB8fCBhW2lkeCBdPT0zKSAmJiBwcmV2IT0xKSB7CiAgICAgICAgICAgIGFucyA9IG1pbihhbnMgLCByZWMoaWR4IC0gMSAsIDEpKTsKICAgICAgICB9CiAgICAgICAgaWYgKChhW2lkeF09PTIgfHwgYVtpZHhdPT0zKSAmJiBwcmV2IT0yKSB7CiAgICAgICAgICAgIGFucyA9IG1pbihhbnMgLCByZWMoaWR4IC0gMSAsIDIpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRwW2lkeF1bcHJldl0gPSAgYW5zOwogICAgfQogICAgdm9pZCBzb2x2ZSgpIHsKICAgICAgICBjaW4gPj4gbiA7CiAgICAgICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKykgewogICAgICAgICAgICBjaW4gPj4gYVtpXSA7CiAgICAgICAgfQogICAgICAgIG1lbXNldChkcCAsIC0xICwgc2l6ZW9mKGRwKSkgOwogICAgICAgIGNvdXQgPDwgcmVjKG4gLCAwKSA7CgogICAgfQoKCiAgICBzaWduZWQgbWFpbigpIHsKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAgICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgICNlbmRpZgogICAgICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY2luLnRpZShudWxscHRyKSwgY291dC50aWUobnVsbHB0cik7CiAgICAgICAgaW50IHRjID0gMTsKICAgICAgICAvLyBjaW4gPj4gdGM7CiAgICAgICAgd2hpbGUgKHRjLS0pIHsKICAgICAgICAgICAgc29sdmUoKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiAwOwogICAgfQ==