#include <bits/stdc++.h>
using namespace std;
const int MAXN = 201000;
long long int N, M, K;
long long int A[MAXN];
bool sol(int quanti) {
  int boxAttuali = 1;
  long long int sizeAttuale = 0;
  for (int i = N - quanti; i < N; i++) {
    if (sizeAttuale + A[i] > K) {
      boxAttuali++;
      sizeAttuale = A[i];
    } else
      sizeAttuale += A[i];
  }
  return boxAttuali <= M;
}
int main() {
  cin >> N >> M >> K;
  for (int i = 0; i < N; i++) cin >> A[i];
  int ris = 0;
  int medio, inizio = 0, fine = N;
  while (inizio <= fine) {
    medio = (inizio + fine) / 2;
    if (sol(medio)) {
      inizio = medio + 1;
      ris = medio;
    } else
      fine = medio - 1;
  }
  cout << ris;
}
