// 遍历整数序列,看当前数字是否小于等于它后面的那个数
#include <stdio.h>

int main() {
    int arr[10000] = { 0 };
    int count = 0;
    while (scanf("%d", &arr[count]) != EOF) {
        ++count;
    }
    // 输入完毕,开始处理
    int flag = 0; // 修改次数的计数器
    for (int i = 0; i < count - 1 && flag <= 1; ) {
        // 如果第一个数大于第二个数,则将第一个数改为和第二个数相等
        if (i == 0 && arr[i] > arr[i + 1]) {
            arr[i] = arr[i + 1];
            ++i; // 向后递增1,开始判断下一个数字
            ++flag; // 做出了一次修改,修改次数计数器要递增1
        } else if (arr[i] > arr[i + 1]) { // 在非第一个数的位置发生了降序
            arr[i] = arr[i - 1]; // 让当前的数等于它的前一个数,
            ++flag; // 做出了一次修改,修改次数计数器要递增1
            // 此时不要改变i的值,因为下一次循环还要检查这个改完之后的数是否还是比后面的数大,
            // 即该数的前一个数可能比后一个数大,比如6,5,4这种情况,将5改为6之后仍然比后面的4大,
            // 是因为5前面的6大于5后面的4
        } else { // 非降序时直接递增i,判断下一个数字即可
            ++i;
        }
    }
    // 循环结束有可能是因为i=count-1 (此时说明可以只修改一次),也可能是因为flag=2 (说明修改次数超过限制了)
    // i的递增和flag的递增只有当i为0时才会一起进行,因此i=count-1和flag=2不可能同时发生,两个等式只有一个成立
    if (flag > 1)
        printf("0");
    else
        printf("1");
    return 0;
}