题目背景

新的一个季度又要到了,Y 同学准备在他的“算法大道”上再种一些魔法树木。这条路上已经有了 NN 棵树,每棵树都有一个“美观值”。Y 同学认为,一段连续的树木构成的区段,其整体美观值等于该区段内所有树的美观值之和。

然而,Y 同学对数字 MM 有着一种奇特的厌恶感。他希望通过种植新树来调整美观值,确保没有任何一个区段的整体美观值恰好等于 MM

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N),代表“算法大道”上已有的 NN 棵树的美观值。

一个区段 [l,r][l, r]1lrN1 \le l \le r \le N)的美观值定义为 i=lrAi\sum_{i=l}^{r} A_i

Y 同学发现,某些区段的美观值恰好等于他讨厌的数字 MM。为了消除这些“不受欢迎的区段”,他可以在任意一个已有的区段 [l,r][l, r] 内,任意位置插入一棵新树。这棵新树的美观值可以是任意整数。插入一棵树会改变所有包含这个插入位置的区段的美观值,从而可能消除原有的值为 MM 的区段。

你的任务是计算,最少需要种植多少棵新树,才能使得没有任何一个连续区段的美-观-值-等-于 MM

输入格式

第一行包含两个整数 NNMM。 第二行包含 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N

输出格式

输出一行,一个整数,表示最少需要种植的新树数量。

样例

样例输入 #1

4 -1
3 -3 2 3

样例输出 #1

1

样例输入 #2

5 100
1 2 3 4 5

样例输出 #2

0

样例输入 #3

9 0
-1 1 -1 1 -1 1 1 -1 -1

样例输出 #3

6

提示

样例解释

  • 样例 1: 序列为 [3, -3, 2, 3]M=1M=-1

    • 区间 [2,4][2, 4] 的和为 (3)+2+3=21(-3) + 2 + 3 = 2 \neq -1
    • 区间 [2,3][2, 3] 的和为 (3)+2=1=M(-3) + 2 = -1 = M。这是一个不受欢迎的区段。
    • 为了破坏这个区段,我们可以在位置 2 和 3 之间种一棵新树。这样,原有的 [2,3] 区段就不复存在了。只需要种 1 棵树。
  • 样例 3: 序列为 [-1, 1, -1, 1, -1, 1, 1, -1, -1]M=0M=0

    • 存在多个和为 0 的区段,例如 [-1, 1][-1, 1, -1, 1] 等。
    • 可以发现,通过在特定位置种树,可以同时破坏多个以该位置为分界点的和为 MM 的区段。
    • 一种最优策略需要种 6 棵树。

数据范围与约定

  • 1N1051 \le N \le 10^5
  • 106M106-10^6 \le M \le 10^6
  • 106Ai106-10^6 \le A_i \le 10^6
  • 保证初始时 AiMA_i \neq M