#include <bits/stdc++.h>
void strInit(char str[]) {
  int len = strlen(str);
  for (int i = 0; i < len; i++) {
    str[i] = 0;
  }
}
void extIntStr(char str[], int data[]) {
  int length = strlen(str);
  str[length - 1] = ' ';
  char buff[12];
  int j, index;
  index = j = 0;
  for (int i = 0; i < length; i++) {
    if (str[i] != ' ') {
      buff[j++] = str[i];
    } else {
      data[index++] = atoi(buff);
      strInit(buff);
      j = 0;
    }
  }
}
void incsort(int data[], int len) {
  for (int i = 0; i < len - 1; i++) {
    for (int j = i + 1; j < len; j++) {
      if (data[i] > data[j]) {
        int tmp = data[i];
        data[i] = data[j];
        data[j] = tmp;
      }
    }
  }
}
void decsort(int data[], int len) {
  for (int i = 0; i < len - 1; i++) {
    for (int j = i + 1; j < len; j++) {
      if (data[i] < data[j]) {
        int tmp = data[i];
        data[i] = data[j];
        data[j] = tmp;
      }
    }
  }
}
void printIntArray(int data[], int len) {
  for (int i = 0; i < len; i++) {
    printf("%d\n", data[i]);
  }
}
int main() {
  int N;
  scanf("%d ", &N);
  int *data;
  char *str;
  data = (int *)malloc(sizeof(int) * N);
  str = (char *)malloc(sizeof(char) * N * 10 + 1);
  fgets(str, N * 10 + N + 1, stdin);
  extIntStr(str, data);
  incsort(data, N);
  for (int i = 0; i < N - 1; i++) {
    data[i + 1] = (data[i] + data[i + 1]) / 2;
  }
  printf("%d", (data[N - 1] + data[N - 2]) / 2);
  return 0;
}
