#include <bits/stdc++.h>
using namespace std;
const int MAXN = 50 + 5;
int N;
int Ans = 0;
int A[MAXN], B[MAXN], Used[MAXN];
void DFS(int depth) {
  if (depth == N + 1) {
    int C[MAXN];
    memcpy(C, B, sizeof(int) * (N + 1));
    sort(C, C + N + 1);
    int tmp = C[1] - C[0];
    for (int i = 1; i < N + 1; i++) {
      if (tmp > C[i] - C[i - 1]) {
        tmp = C[i] - C[i - 1];
      }
    }
    tmp = min(tmp, 24 - C[N]);
    if (Ans < tmp) Ans = tmp;
    return;
  }
  if (Used[depth]) DFS(depth + 1);
  B[depth] = A[depth];
  DFS(depth + 1);
  B[depth] = 24 - A[depth];
  DFS(depth + 1);
  return;
}
int main() {
  cin >> N;
  for (int i = 0; i < N; i++) cin >> A[i];
  if (N >= 24)
    cout << 0 << endl;
  else {
    A[N] = 0;
    sort(A, A + N + 1);
    if (A[1] == 0)
      cout << 0 << endl;
    else {
      for (int i = 0; i < N; i++) {
        if (A[i] == A[i + 1]) {
          if (Used[i]) {
            cout << 0 << endl;
            break;
          }
          Used[i] = 1;
          Used[i + 1] = 1;
          B[i] = A[i];
          B[i + 1] = 24 - A[i];
        }
      }
      DFS(1);
      cout << Ans << endl;
    }
  }
  return 0;
}
