#include #include #include #include #include #include #include typedef long long ll; typedef unsigned un; typedef std::vector P; typedef std::pair pii; ll read(){ll x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=x*10+(c-'0'),c=getchar();return f*x;} ll max(ll a,ll b){return a>b?a:b;} ll min(ll a,ll b){return a bool umax(T& a,T t){if(t>a)return a=t,1;return 0;} template bool umin(T& a,T t){if(t