#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define all(x) x.begin(), x.end()
#define endl '\n'

using ll = long long;

template <int MOD>
struct mint {
    int v;
 
    mint(ll x = 0) : v(int(-MOD < x && x < MOD ? x : x % MOD) + (x < 0) * MOD) {}
 
    friend mint pow(mint base, ll exp) {
        mint res = 1;
        while (exp) {
            if (exp & 1) {
                res *= base;
            }
            base *= base;
            exp >>= 1;
        }
        return res;
    }

    mint &operator+=(mint b) {
        v = v + b.v - (v + b.v >= MOD) * MOD;
        return *this;
    }
    mint &operator-=(mint b) {
        v = v - b.v + (v < b.v) * MOD;
        return *this;
    }
    mint &operator*=(mint b) {
        v = int(1ll * v * b.v % MOD);
        return *this;
    }
    mint &operator/=(mint b) {
        v = int(1ll * v * pow(b, MOD - 2).v % MOD);
        return *this;
    }
    friend mint operator+(mint a, mint b) {
        return a += b;
    }
    friend mint operator-(mint a, mint b) {
        return a -= b;
    }
    friend mint operator*(mint a, mint b) {
        return a *= b;
    }
    friend mint operator/(mint a, mint b) {
        return a /= b;
    }
    friend ostream &operator<<(ostream &os, mint a) {
        return os << a.v;
    }
};

using mi = mint<998244353>;

void solve() {
	int n, m; cin >> n >> m;
	vi a(n); FOR(i, 0, n) cin >> a[i];
	vi p(n), s(n);
	int mn = m;
	FOR(i, 0, n) {
		if (a[i] != -1) mn = min(mn, a[i]);
		p[i] = mn;
	}
	int mx = 1;
	for (int i = n - 1; i >= 0; i--) {
		if (a[i] != -1) mx = max(mx, a[i]);
		s[i] = mx;
	}
	vi c(n);
	FOR(i, 0, n) {
		c[i] = a[i] == -1;
		if (i) c[i] += c[i - 1];
	}
	mi ans = 0;
	FOR(i, 0, n - 1) {
		int x = c[i], y = c[n - 1] - c[i];
		FOR(j, s[i + 1], p[i]) {
			ans += pow(m - j, x) * pow(j, y);
		}
		FOR(j, s[i + 1], p[i] - 1) {
			ans -= pow(m - j - 1, x) * pow(j, y);
		}
	}
	ans += pow(m, c[n - 1]);
	cout << ans << endl;
}

signed main() {
  ios::sync_with_stdio(0); cin.tie(0);
  int t = 1; while (t--) solve();
}

