#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, i, a[10010];
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
  }
  bool c = false;
  bool g = false;
  long long cnt = 0;
  for (i = 0; i < n; i++) {
    if (a[i] == 0) {
      cnt++;
      c = false;
      g = false;
    }
    if (a[i] == 1) {
      if (c == false) {
        c = true;
        g = false;
      } else {
        cnt++;
        c = false;
        g = false;
      }
    }
    if (a[i] == 2) {
      if (g == false) {
        g = true;
        c = false;
      } else {
        cnt++;
        g = false;
        c = false;
      }
    }
    if (a[i] == 3) {
      long long val = 0;
      long long j = i;
      while (a[j] == 3) {
        j++;
        val++;
      }
      if (j >= n) continue;
      if (c == false && g == false) {
        if (val % 2 == 0) {
          if (a[j] == 1) {
            c = true;
            g = false;
          }
          if (a[j] == 2) {
            g = true;
            c = false;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        } else {
          if (a[j] == 2) {
            c = false;
            g = true;
          }
          if (a[j] == 1) {
            g = false;
            c = true;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        }
        i = j;
        continue;
      }
      if (c == true && g == false) {
        if (val % 2 == 0) {
          if (a[j] == 1) {
            cnt++;
            c = false;
            g = false;
          }
          if (a[j] == 2) {
            c = false;
            g = true;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        } else {
          if (a[j] == 1) {
            c = true;
            g = false;
          }
          if (a[j] == 2) {
            cnt++;
            g = false;
            c = false;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        }
        i = j;
        continue;
      }
      if (c == false && g == true) {
        if (val % 2 == 0) {
          if (a[j] == 1) {
            c = true;
            g = false;
          }
          if (a[j] == 2) {
            cnt++;
            g = false;
            c = false;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        } else {
          if (a[j] == 1) {
            cnt++;
            c = false;
            g = false;
          }
          if (a[j] == 2) {
            g = true;
            c = false;
          }
          if (a[j] == 0) {
            g = false;
            c = false;
            cnt++;
          }
        }
        i = j;
        continue;
      }
    }
  }
  cout << cnt;
}
