#include<bits/stdc++.h>
using namespace std;
using ll=long long; 
ll mod=998244353;
int main()
{
    int n,x;
    cin>>n>>x;
    vector<int>v(n);
    for(int i=0;i<n;i++){
        cin>>v[i];
    }
    vector<int>vi=v;
    vector<int>vii=v;
    for(int i=0;i<n;i++){
        if(i==0&&vi[i]==-999){
            vi[i]=50;
        }
        else{
            if(vi[i]==-999){
                if(vi[i-1]-x>=-50){
                    vi[i]=vi[i-1]-x;
                }
                else{
                    vi[i]=50;
                }
            }
        }
    }
    for(int i=0;i<n;i++){
        if(i==0&&vii[i]==-999){
            vii[i]=-50;
        }            
        else{
            if(vii[i]==-999){
                if(vii[i-1]-x+1>=-50){
                    vii[i]=vii[i-1]-x+1;
                }
                else{
                    vii[i]=-50;
                }
            }
        }
    }
    int maxn=0,minn=0;
    for(int i=1;i<n;i++){
        if(vi[i]-vi[i-1]<=-x){
            maxn++;
        }
        if(vii[i]-vii[i-1]<=-x){
            minn++;
        }
    }
    cout<<maxn<<" "<<minn<<endl;
}

我们可以使用贪心的思想来开两个数组,在最大的数组里面如果出现-999的话,可以如果可以将-999修改为v[i-1]-x的话直接修改,不能就改为50为下一个降低做准备,同理最小的里面我们就不让它为降温天修改为v[i-1]-x+1,如果不能满足就直接改为-50让它的下一个不可能为降温天。另外天气冷了,大家注意保暖。