#include <bits/stdc++.h>
using namespace std;
const int INF =
    sizeof(int) == sizeof(long long) ? 0x3f3f3f3f3f3f3f3fLL : 0x3f3f3f3f;
const int MOD = (int)(1e9) + 7;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return true;
  }
  return false;
}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  for (int n; cin >> n;) {
    vector<int> D(n);
    for (int i = (0); i < (n); i++) {
      cin >> D[i];
    }
    D.push_back(0);
    int N = n + 1;
    sort(begin(D), end(D));
    auto f = [&](const vector<int> &d) {
      int score = 24 - d.back();
      for (int i = (0); i < (N - 1); i++) {
        chmin(score, d[i + 1] - d[i]);
      }
      return score;
    };
    if (N > 24) {
      cout << 0 << endl;
    } else {
      vector<int> cnt(25);
      for (int i = (0); i < (N); i++) {
        cnt[D[i]]++;
        cnt[24 - D[i]]++;
      }
      if (*max_element(begin(cnt), end(cnt)) > 2) {
        cout << 0 << endl;
      } else {
        int score = 0;
        for (int mask = (0); mask < ((1 << N)); mask++) {
          vector<int> d = D;
          for (int i = (0); i < (N); i++) {
            if ((mask >> i) & 1) {
              d[i] = 24 - d[i];
            }
          }
          sort(begin(d), end(d));
          int tmp = 24 - d.back();
          for (int i = (0); i < (N - 1); i++) {
            chmin(tmp, d[i + 1] - d[i]);
          }
          chmax(score, tmp);
        }
        cout << score << endl;
      }
    }
  }
  return 0;
}
