#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chkmin(T &a, T const &b) {
  return b < a ? a = b, true : false;
}
template <class T>
inline bool chkmax(T &a, T const &b) {
  return a < b ? a = b, true : false;
}
const int M = 14;
const int N = 1594323;
int Base[] = {1,    3,    9,     27,    81,     243,    729,
              2187, 6561, 19683, 59049, 177147, 531441, 1594323};
long long X[M][N], Fac[20];
int A[M], B[M], sz[M];
long long T, ans;
int n, k, l, r;
int main() {
  for (int i = (Fac[0] = 1), i_end__ = (20); i < i_end__; ++i)
    Fac[i] = Fac[i - 1] * i;
  scanf("%d%d%lld", &n, &k, &T);
  l = (n + 1) >> 1, r = n - l;
  for (int i = (0), i_end__ = (l); i < i_end__; ++i) scanf("%d", A + i);
  for (int i = (0), i_end__ = (r); i < i_end__; ++i) scanf("%d", B + i);
  for (int S = (0), S_end__ = (Base[l]); S < S_end__; ++S) {
    long long res = 0;
    int cnt = 0;
    for (int i = (0), i_end__ = (l); i < i_end__; ++i) {
      int x = S / Base[i] % 3;
      if (x == 0) continue;
      if (x == 1) res += A[i];
      if (x == 2) {
        if (A[i] < 20)
          res += Fac[A[i]];
        else {
          res = -1;
          break;
        }
        ++cnt;
      }
    }
    if (~res and cnt <= k) X[cnt][sz[cnt]++] = res;
  }
  for (int i = (0), i_end__ = (l + 1); i < i_end__; ++i)
    sort(X[i], X[i] + sz[i]);
  for (int S = (0), S_end__ = (Base[r]); S < S_end__; ++S) {
    long long res = 0;
    int cnt = 0;
    for (int i = (0), i_end__ = (r); i < i_end__; ++i) {
      int x = S / Base[i] % 3;
      if (x == 0) continue;
      if (x == 1) res += B[i];
      if (x == 2) {
        if (B[i] < 20)
          res += Fac[B[i]];
        else {
          res = -1;
          break;
        }
        ++cnt;
      }
    }
    if (!~res) continue;
    for (int i = (0), i_end__ = (min(l, k - cnt) + 1); i < i_end__; ++i) {
      long long *a = lower_bound(X[i], X[i] + sz[i], T - res);
      long long *b = upper_bound(X[i], X[i] + sz[i], T - res);
      ans += b - a;
    }
  }
  printf("%lld\n", ans);
  return 0;
}
