#include <bits/stdc++.h>
using namespace std;
const int N = 16, M = 10000000;
const unsigned long long LIMIT = 1000000000000000000;
int n, prime[N + 9];
long long k;
unsigned long long sum1[M + 9], sum2[M + 9], Number[M + 9];
int tot1, tot2;
unsigned long long tot = 0;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", prime + i);
  sort(prime + 1, prime + 1 + n);
  sum1[++tot1] = 1, sum2[++tot2] = 1;
  for (int i = 1; i <= n; i += 2)
    for (int j = 1; j <= tot1; j++)
      if (sum1[j] <= LIMIT / prime[i]) sum1[++tot1] = sum1[j] * prime[i];
  for (int i = 2; i <= n; i += 2)
    for (int j = 1; j <= tot2; j++)
      if (sum2[j] <= LIMIT / prime[i]) sum2[++tot2] = sum2[j] * prime[i];
  sort(sum1 + 1, sum1 + 1 + tot1);
  sort(sum2 + 1, sum2 + 1 + tot2);
  scanf("%lld", &k);
  unsigned long long l = 1, r = LIMIT, mid;
  while (l <= r) {
    mid = (l + r) / 2;
    long long tot = 0;
    bool Flag = 0;
    for (int i = 1, j = tot2; i <= tot1; i++) {
      while (j >= 1 && sum1[i] > mid / sum2[j]) j--;
      if (sum1[i] * sum2[j] == mid) Flag = 1;
      tot += j;
    }
    if (tot > k)
      r = mid - 1;
    else if (tot < k)
      l = mid + 1;
    else if (!Flag)
      r = mid - 1;
    else
      break;
  }
  printf("%llu\n", mid);
  return 0;
}
