#include <bits/stdc++.h>
int d[13];
bool s[25];
int main() {
  int n, temp;
  scanf("%d", &n);
  memset(d, 0, sizeof(d));
  memset(s, false, sizeof(s));
  s[0] = s[24] = true;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &temp);
    d[temp]++;
  }
  if (d[0] || d[12] >= 2) {
    printf("0\n");
    return 0;
  }
  for (int i = 1; i <= 12; i++) {
    if (d[i] > 2) {
      printf("0\n");
      return 0;
    }
  }
  for (int i = 1; i < 12; i++) {
    if (d[i] > 1) {
      s[i] = true;
      s[24 - i] = true;
    } else if (d[i]) {
      int l, r;
      for (int j = i - 1; j >= 0; j--) {
        if (s[j]) {
          l = i - j;
        }
      }
      for (int j = 24 - i + 1; j < 24; j++) {
        if (s[j]) {
          r = j - (24 - i);
        }
      }
      if (l > r) {
        s[i] = true;
      } else {
        s[24 - i] = true;
      }
    }
  }
  if (d[12]) {
    s[12] = true;
  }
  int maxs = 12;
  for (int i = 1; i < 24; i++) {
    if (s[i]) {
      for (int j = i - 1; j >= 0; j--) {
        if (s[j]) {
          if (i - j < maxs) {
            maxs = i - j;
          }
          break;
        }
      }
      for (int j = i + 1; j <= 24; j++) {
        if (s[j]) {
          if (j - i < maxs) {
            maxs = j - i;
          }
          break;
        }
      }
    }
  }
  printf("%d\n", maxs);
  return 0;
}
