#include using namespace std; #define modulo 998244353 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000000000000001 template struct SWAG{ F func; T init_value; stack> X,Y; SWAG(F f,T iv):func(f){ init_value = iv; } void push_front(T x){ if(X.empty())X.push({x,x}); else X.push({x,func(x,X.top().second)}); } void push_back(T x){ if(Y.empty())Y.push({x,x}); else Y.push({x,func(Y.top().second,x)}); } void pop_front(){ if(X.empty()){ int n = Y.size(); stack t; for(int i=0;i t; for(int i=0;i A(N); for(int i=0;i S(f,0); long long ans = 0; int r = 0; for(int i=0;i