func_code_string: #include <bits/stdc++.h>   using namespace std;   inline int Pow(int x, int y, int mod) {     long long t = x, r = 1;     for (; y; y >>= 1, t = t * t % mod) y& 1 ? r = r * t % mod : 0;     return r;   }   inline int Get() {     int res = 0, q = 1;     char ch = getchar();     while ((ch <  0  || ch >  9 ) && ch !=  - ) ch = getchar();     if (ch ==  - ) q = -1, ch = getchar();     while (ch >=  0  && ch <=  9 ) res = res * 10 + ch -  0 , ch = getchar();     return res * q;   }   const double eps = 1e-12, pi = M_PI;   const int oo = (int)2.1e9, mod = (int)1e9 + 7;   const long long INF = (long long)1e17;   const int N = 110;   int n;   int dp[N][3];   int a[N];   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; ++i) scanf( %d , a + i);     dp[1][0] = 1;     dp[1][1] = a[1] == 1 || a[1] == 3 ? 0 : oo;     dp[1][2] = a[1] == 2 || a[1] == 3 ? 0 : oo;     for (int i = 2; i <= n; ++i) {       dp[i][0] = min(min(dp[i - 1][0], dp[i - 1][1]), dp[i - 1][2]) + 1;       if (a[i] == 1 || a[i] == 3)         dp[i][1] = min(dp[i - 1][0], dp[i - 1][2]);       else         dp[i][1] = oo;       if (a[i] == 2 || a[i] == 3)         dp[i][2] = min(dp[i - 1][0], dp[i - 1][1]);       else         dp[i][2] = oo;     }     printf( %d n , min(dp[n][0], min(dp[n][1], dp[n][2])));     return 0;   }   