#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

#define endl '\n'
#define foreach(i, l, r) for(ll i=(l); i<=(r); i++)
#define forreach(i, l, r) for(ll i=l; i>=(r); i--)