#include <bits/stdc++.h>
using namespace std;
const long long U = 1e18;
int n;
vector<long long> arr, A, B;
void gen(long long u, int i, vector<int> &c, vector<long long> &C) {
  if (i == c.size()) {
    C.emplace_back(u);
    return;
  }
  gen(u, i + 1, c, C);
  for (; u <= U / c[i];) {
    gen(u *= c[i], i + 1, c, C);
  }
}
long long get(long long k) {
  long long j = 0;
  long long ans = 0;
  for (int i = 0; i < A.size(); ++i) {
    while (j < B.size() && A[i] <= k / B[j]) j++;
    ans += j;
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n;
  int val, k;
  for (int i = 0; i < n; ++i) {
    cin >> val;
    arr.emplace_back(val);
  }
  cin >> k;
  vector<int> a, b;
  for (int i = 0; i < n; i += 2) {
    a.emplace_back(arr[i]);
  }
  for (int i = 1; i < n; i += 2) {
    b.emplace_back(arr[i]);
  }
  gen(1, 0, a, A);
  gen(1, 0, b, B);
  sort(A.begin(), A.end(), greater<long long>());
  sort(B.begin(), B.end());
  long long lo = 0, hi = U;
  while (lo != hi) {
    long long m = (lo + hi) / 2;
    if (get(m) < k) {
      lo = m + 1;
    } else
      hi = m;
  }
  cout << hi << '\n';
}
