/**
* /\_/\
* (= ._.)
* / >01<\
*
*/
#include<bits/stdc++.h>
#define task "young"
#define int long long
#define ii pair<int, int>
#define ll long long
#define ld long double
#define fi first
#define se second
#define faster ios_base::sync_with_stdio(NULL); cin.tie(NULL);
#define F if(fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); }
using namespace std;
const int Q = 1e6 + 21;
const int N = 1e3 + 21;
const int mod = 1e9 + 7;
const int inf = 1e9 + 7;
const int dx[] = {0, 0, 1, -1};
const int dy[] = {1, -1, 0, 0};
int k;
int n;
int r[16];
int a[16][16];
int ans;
void cal(int id, int row, int last)
{
if(id > k)
{
ans++;
return;
}
if(row > r[id])
{
cal(id + 1, 1, 0);
return;
}
for(int i = last; i <= n; i++)
{
a[id][row] = i;
if(a[id - 1][row] < i)
cal(id, row + 1, i);
}
}
void solve()
{
cin >> k;
for(int i = 1; i <= k; i++)
cin >> r[i];
cin >> n;
cal(1, 1, 0);
cout << ans;
cout << '\n';
}
signed main()
{
faster;
F;
int test = 1;
// cin >> test;
while(test--)
{
solve();
}
cerr << "Time elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << " s.\n";
return 0;
}
LyoqCiAqICAgL1xfL1wKICogICg9IC5fLikKICogIC8gPjAxPFwKICoKKi8KCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdGFzayAieW91bmciCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZhc3RlciBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKE5VTEwpOyBjaW4udGllKE5VTEwpOwojZGVmaW5lIEYgaWYoZm9wZW4odGFzayIuaW5wIiwiciIpKXsgZnJlb3Blbih0YXNrIi5pbnAiLCJyIixzdGRpbik7IGZyZW9wZW4odGFzayIub3V0IiwidyIsc3Rkb3V0KTsgfQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IFEgPSAxZTYgKyAyMTsKY29uc3QgaW50IE4gPSAxZTMgKyAyMTsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CmNvbnN0IGludCBpbmYgPSAxZTkgKyA3Owpjb25zdCBpbnQgZHhbXSA9IHswLCAwLCAxLCAtMX07CmNvbnN0IGludCBkeVtdID0gezEsIC0xLCAwLCAwfTsKCmludCBrOwppbnQgbjsKCmludCByWzE2XTsKaW50IGFbMTZdWzE2XTsKCmludCBhbnM7Cgp2b2lkIGNhbChpbnQgaWQsIGludCByb3csIGludCBsYXN0KQp7CiAgICBpZihpZCA+IGspCiAgICB7CiAgICAgICAgYW5zKys7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmKHJvdyA+IHJbaWRdKQogICAgewogICAgICAgIGNhbChpZCArIDEsIDEsIDApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IoaW50IGkgPSBsYXN0OyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBhW2lkXVtyb3ddID0gaTsKCiAgICAgICAgaWYoYVtpZCAtIDFdW3Jvd10gPCBpKQogICAgICAgICAgICBjYWwoaWQsIHJvdyArIDEsIGkpOwogICAgfQp9Cgp2b2lkIHNvbHZlKCkKewogICAgY2luID4+IGs7CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBrOyBpKyspCiAgICAgICAgY2luID4+IHJbaV07CgogICAgY2luID4+IG47CgogICAgY2FsKDEsIDEsIDApOwoKICAgIGNvdXQgPDwgYW5zOwogICAgY291dCA8PCAnXG4nOwp9CgpzaWduZWQgbWFpbigpCnsKICAgIGZhc3RlcjsKICAgIEY7CgogICAgaW50IHRlc3QgPSAxOwoKLy8gICAgY2luID4+IHRlc3Q7CgogICAgd2hpbGUodGVzdC0tKQogICAgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgY2VyciA8PCAiVGltZSBlbGFwc2VkOiAiIDw8ICgxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMpIDw8ICIgcy5cbiI7CgogICAgcmV0dXJuIDA7Cn0K