#include <bits/stdc++.h>
int N, D[50];
bool used[25];
int main() {
  scanf("%d", &N);
  for (int i = (0); i < (N); ++i) scanf("%d", D + i);
  if (N == 1) {
    puts("0");
    return 0;
  }
  std::sort(D, D + N);
  bool tug = false;
  for (int i = (0); i < (N); ++i) {
    int nxt = (tug ? D[i] : 24 - D[i]);
    if (used[nxt]) {
      puts("0");
      return 0;
    }
    used[nxt] = true;
    if (D[i]) tug ^= true;
  }
  int ans = 24;
  for (int i = (0); i < (24); ++i)
    for (int j = (0); j < (i); ++j)
      if (used[i] && used[j]) ans = std::min(ans, i - j);
  tug = true;
  memset((used), (false), sizeof(used));
  for (int i = (0); i < (N); ++i) {
    int nxt = (tug ? D[i] : 24 - D[i]);
    if (used[nxt]) {
      puts("0");
      return 0;
    }
    used[nxt] = true;
    if (D[i]) tug ^= true;
  }
  for (int i = (0); i < (24); ++i)
    for (int j = (0); j < (i); ++j)
      if (used[i] && used[j]) ans = std::min(ans, i - j);
  printf("%d\n", ans);
  return 0;
}
