#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<list>
#include<deque>
#include<bitset>
#include<cstdlib>
#define LL long long
#define PI acos(-1)
#define eps 1e-8
#define lowbit(x) (x&-x)
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define MEM(a,x) memset(a,x,sizeof(a))
using namespace std;