#include #include #include using namespace std; using ll = long long; #include using mint = atcoder::modint998244353; #include int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); ll n,m,k,q; cin>>n>>m>>k>>q; vector a(n); for(int i = 0;i>a[i]; atcoder::fenwick_tree b1(n),b2(n); for(int i = 0;i>op; if(op==1){ mint ans = 0; int l,r; cin>>l>>r; l--; if(m!=1){ ans += b2.sum(l,r)*(mint(m).pow(l)); ans -= b1.sum(l,r); ans /= m - 1; } ans += r - l; cout<>i>>x; i--; b1.add(i,-(a[i]-1)); if(m!=1) b2.add(i,-(mint(a[i]-1)*(mint(m).pow(k-i)))); a[i] = x; b1.add(i,a[i]-1); if(m!=1) b2.add(i,mint(a[i]-1)*(mint(m).pow(k-i))); } } }