//201703-1
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int main(){
int n, k;scanf("%d%d", &n, &k);
queue<int> q;
int num;
for (int i = 0; i < n; i++){scanf("%d", &num);
q.push(num);}
int count = 0;
int sum = 0;
while (!q.empty()){
int area = q.front();
q.pop();
if (!q.empty())
if (sum + area >= k){
sum = 0;
count++;}else{
sum += area;}
else
count++;}printf("%d\n", count);
return 0;}
//201703-1
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, k;scanf("%d%d", &n, &k);
int res = 0;
int cur = 0;
while (n--){
int num;scanf("%d", &num);
cur += num;
if (cur >= k)
res++, cur = 0;}printf("%d\n", cur != 0 ? ++res: res);
return 0;}
//201703-2
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;scanf("%d", &n);
int arr[n + 1];//只能到n
for (int i = 0; i < n + 1; i++)
arr[i] = i;
int m;scanf("%d", &m);
int a1, a2;
for (int i = 0; i < m; i++){scanf("%d%d", &a1, &a2);
for (int j = 1; j < n + 1; j++)
if (arr[j] == a1){
int temp = arr[j];
//temp对应在数组中的位置就是j
if (a2 > 0){//向后移动
if (j + a2 < n + 1){
for (int k = j; k < j + a2; k++)
arr[k] = arr[k + 1];
arr[j + a2] = temp;
break;}else{
for (int k = j; k < n; k++)
arr[k] = arr[k + 1];
arr[n] = temp;
break;}}else{//向前移动
if (j + a2 >= 1){
for (int k = j; k > j + a2; k--)
arr[k] = arr[k - 1];
arr[j + a2] = temp;
break;}else{
for (int k = j; k > 1; k--)
arr[k] = arr[k - 1];
arr[1] = temp;
break;}}}}
for (int i = 1; i < n + 1; i++)printf("%d ", arr[i]);
return 0;}
//201703-2
//注意删除数据返回的迭代器
#include <bits/stdc++.h>
using namespace std;
int main(){
list<int> obj;
int n;scanf("%d", &n);
for (int i = 1; i <= n; i++)
obj.push_back(i);
int num;scanf("%d", &num);
list<int>::iterator removeNum;
while (num--){
int a, b;scanf("%d%d", &a, &b);
for (auto it = obj.begin(); it != obj.end(); it++){if (*it == a){
removeNum = it;
break;}}
removeNum = obj.erase(removeNum);
if (b > 0){
while (b--)
removeNum++;
obj.insert(removeNum, a);}else{
while (b++)
removeNum--;
obj.insert(removeNum, a);}}
for (auto ite:obj)printf("%d ", ite);
return 0;}
//201703-2
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
list<int> l;
for (int i = 1; i <= n; i++)
l.emplace_back(i);
int m;scanf("%d", &m);
while (m--){
int p, q;scanf("%d%d", &p, &q);
list<int>::iterator iter;
for (auto it = l.begin(); it != l.end(); it++)
if (*it == p){
iter = l.erase(it);
break;}
if (q > 0)
while (q--)
iter++;
else
while (q++)
iter--;
l.insert(iter, p);}
for (auto it:l)printf("%d ", it);
return 0;}