#include <bits/stdc++.h>
using namespace std;
int n, k, ans = 0;
double p[3009];
double mx[3009];
int status[3009][3009];
int bullet[3009][3009];
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n; i++) cin >> p[i];
  queue<pair<int, int> > q;
  q.push(make_pair(1, 2));
  status[1][2] = 1;
  bullet[1][2] = k;
  for (int j = n; j >= 1; j--) mx[j] = max(p[j], mx[j + 1]);
  while (!q.empty()) {
    pair<int, int> x = q.front();
    q.pop();
    ans++;
    if (x.first > n || bullet[x.first][x.second] == 0) continue;
    if (x.second > n && x.first <= n) continue;
    double p1 = 0;
    p1 = mx[x.second];
    if (p[x.first] != 100 && p1 != 0 && status[x.second][x.second + 1] == 0) {
      q.push(make_pair(x.second, x.second + 1));
      status[x.second][x.second + 1] = 1;
      bullet[x.second][x.second + 1] = bullet[x.first][x.second] - 1;
    }
    if (p[x.first] != 0 && p1 != 100 && status[x.first][x.second + 1] == 0) {
      q.push(make_pair(x.first, x.second + 1));
      status[x.first][x.second + 1] = 1;
      bullet[x.first][x.second + 1] = bullet[x.first][x.second] - 1;
    }
    if (p[x.first] != 0 && p1 != 0 && status[x.second + 1][x.second + 2] == 0) {
      q.push(make_pair(x.second + 1, x.second + 2));
      status[x.second + 1][x.second + 2] = 1;
      bullet[x.second + 1][x.second + 2] = bullet[x.first][x.second] - 1;
    }
  }
  cout << ans << endl;
  return 0;
}
