#include <bits/stdc++.h>
using namespace std;
vector<int> cnt(13, 0);
int gap(vector<bool> v) {
  int ret = INT_MAX;
  for (int i = 0; i < v.size(); ++i) {
    for (int j = i + 1; j < v.size(); ++j) {
      if (v[i] && v[j]) {
        int tmp = j - i;
        ret = min(ret, min(tmp, 24 - tmp));
      }
    }
  }
  return ret;
}
int calc(vector<bool> v, int pos) {
  int ret = 0;
  if (pos == 12) {
    if (cnt[pos] != 0) v[12] = true;
    ret = gap(v);
  } else {
    if (cnt[pos] == 1) {
      v[pos] = true;
      ret = calc(v, pos + 1);
      v[pos] = false;
      v[24 - pos] = true;
      ret = max(ret, calc(v, pos + 1));
    } else if (cnt[pos] == 2) {
      v[pos] = v[24 - pos] = true;
      ret = calc(v, pos + 1);
    } else
      ret = calc(v, pos + 1);
  }
  return ret;
}
int main() {
  int n;
  cin >> n;
  vector<int> d(n);
  cnt[0]++;
  for (int i = 0; i < n; ++i) {
    cin >> d[i];
    cnt[d[i]]++;
  }
  bool f = true;
  if (cnt[1] > 1 || cnt[12] > 1) f = false;
  for (int i = 1; i < 12; ++i) {
    if (cnt[i] > 2) f = false;
  }
  if (!f)
    cout << 0 << endl;
  else if (n == 1)
    cout << d[0] << endl;
  else {
    vector<bool> v(24, false);
    v[0] = true;
    cout << calc(v, 1) << endl;
  }
  return 0;
}
