#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9, MOD = 1e9 + 7,
          around[] = {0, 1, 1, -1, -1, 0, -1, 1, 0, 0};
const long long LINF = 1e18;
const long double PI = abs(acos(-1));
int n, a, li[30];
vector<int> vec;
int main() {
  cin >> n;
  li[0] = true;
  for (int i = (0); i < (n); i++) {
    cin >> a;
    if (li[a] and li[24 - a]) {
      cout << 0 << endl;
      return 0;
    } else if (li[a] and !li[24 - a])
      li[24 - a] = true;
    else
      li[a] = true;
  }
  for (int i = (0); i < (25); i++)
    if (li[i]) vec.push_back(i);
  sort(vec.begin(), vec.end());
  int ma = 0;
  for (int i = (0); i < ((1 << vec.size())); i++) {
    set<int> st;
    vector<int> pos;
    bool f = false;
    int mi = INF;
    for (int j = (0); j < (vec.size()); j++) {
      if ((i >> j) & 1 and st.count(24 - vec[j])) {
        f = true;
        break;
      } else if ((i >> j) & 1)
        st.insert(24 - vec[j]), pos.push_back(24 - vec[j]);
      else if (st.count(vec[j])) {
        f = true;
        break;
      } else
        st.insert(vec[j]), pos.push_back(vec[j]);
    }
    if (f) continue;
    sort(pos.begin(), pos.end());
    for (int i = (0); i < (pos.size() - 1); i++)
      mi = min(mi, pos[i + 1] - pos[i]);
    mi = min(mi, min(abs(pos[pos.size() - 1] - pos[0]),
                     abs(24 - (pos[pos.size() - 1] - pos[0]))));
    ma = max(ma, mi);
  }
  cout << ma << endl;
  return 0;
}
