#include <bits/stdc++.h>
using namespace std;
const int N = 2000000;
long long n, p[20], k, f[N], g[N], c1, c2, w[20], tp;
void dfs(long long res, long long x) {
  if (x <= n / 2 + 1 && c2) {
    f[++c1] = res;
    if (c1 == k) return;
  } else {
    g[++c2] = res;
    if (c2 == k) return;
  }
  if ((x == n / 2 + 1 && c2 > 1) || x == n + 1) return;
  dfs(res, x + 1);
  while ((long double)res <= (long double)1.0 * 1e18 / p[x])
    res = res * p[x], dfs(res, x + 1);
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> w[i];
  cin >> k;
  for (int i = 1; i <= n; i += 2) p[++tp] = w[i];
  for (int i = 2; i <= n; i += 2) p[++tp] = w[i];
  dfs(1, n / 2 + 1);
  dfs(1, 1);
  sort(f + 1, f + c1 + 1);
  sort(g + 1, g + c2 + 1);
  c1 = unique(f + 1, f + c1 + 1) - f - 1;
  c2 = unique(g + 1, g + c2 + 1) - g - 1;
  long long l = 1, r = 1e18, ans = r;
  while (l <= r) {
    long long mid = (l + r) >> 1, tt = 0, p1 = 1, p2 = c2;
    for (; p1 <= c1; tt += p2, p1++)
      while ((long double)f[p1] > (long double)1.0 * mid / g[p2] && p2) p2--;
    if (tt >= k)
      r = mid - 1, ans = mid;
    else
      l = mid + 1;
  }
  cout << ans;
}
