#include <iostream>
#include<vector>
using namespace std;

int main() {
    int n,x;
    cin>>n>>x;
    vector<int>a(n+1,0);
    vector<int>b(n+1,0);
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=a[i];
    }
    int ma=0,mi=0,ans1=0,ans2=0;
    if(a[1]==-999)a[1]=50;
    for(int i=2;i<=n;i++){
        if(a[i]==-999){
            a[i]=a[i-1]-x;
            if(a[i]<-50){
                a[i]=50;
                continue;
            }
            ans1++;
        }else{
            if(a[i-1]-a[i]>=x)ans1++;
        }
    }
    if(b[n]==-999)b[n]=50;
    for(int i=n-1;i>0;i--){
        if(b[i]==-999){
            b[i]=b[i+1]+x-1;
            if(b[i]>50)b[i]=50;
        }else if(b[i]-b[i+1]>=x)ans2++;
    }
    cout<<ans1<<' '<<ans2;
}

从前往后尽量大但是凑比前面小x得出最大值,从后往前尽量大但是凑比后面大x-1得出最小值,第一次自己写出来qwq,咱菜但是应该容易懂?qwq