#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
inline bool chmin(T1 &a, T2 b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename T1, typename T2>
inline bool chmax(T1 &a, T2 b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename T>
T gcd(T a, T b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  int f = 0, t = 0, o = 0;
  for (int i = 0; i < (n); ++i) {
    int a;
    cin >> a;
    if (a % 4 == 0)
      f++;
    else if (a % 2 == 0)
      t++;
    else
      o++;
  }
  vector<int> ans(n);
  {
    for (int i = 1; i < n; i += 3) {
      if (f == 0) break;
      f--;
      ans[i] = 4;
    }
    for (int i = 1; i < (n - 1); ++i)
      if (ans[i] == 0 && f) {
        f--;
        ans[i] = 4;
      }
    for (int i = 0; i < (n); ++i)
      if (ans[i] == 0 && f) {
        f--;
        ans[i] = 4;
      }
  }
  {
    for (int i = 1; i < (n - 1); ++i) {
      if (t == 0) break;
      int c = 0;
      if (ans[i - 1] % 2 == 0)
        c++;
      else if (ans[i + 1] % 2 == 0)
        c++;
      if (ans[i] == 0 && c == 1) {
        ans[i] = 2;
        t--;
      }
    }
    for (int i = 0; i < (n); ++i)
      if (ans[i] == 0 && t) {
        t--;
        ans[i] = 2;
      }
  }
  for (int i = 0; i < (n); ++i)
    if (ans[i] == 0) ans[i] = 1;
  for (int i = 1; i < (n); ++i)
    if (ans[i] * ans[i - 1] % 4 != 0) {
      cout << "No" << endl;
      return 0;
    }
  cout << "Yes" << endl;
}
