text: //author:luckYrat(twitter:@luckYrat_)
  //#include <bits/stdc++.h>
  
  //def
  #include <iostream>
  
  #include <cmath>
  #include <algorithm>
  #include <iomanip>
  
  //array
  #include <vector>
  #include <set>
  #include <stack>
  #include <queue>
  #include <map>
  #include <utility>
  
  
  
  using namespace std;
  
  typedef pair<int,int> Paint;
  
  #define anyfill(n,s) setw(n) << setfill(s)
  #define loop(s) for(int i = 0; s > i; i++)
  #define rep(i,q) for(int i = 0; (q) > i; i++)
  #define repp(i,n,q) for(int i = n; (q) > i; i++)
  #define dep(i,q) for(int i = (q); 0 < i; i--)
  
  
  #define MAX 1000000000
  #define MOD 1000000007
  
  #define pb push_back
  #define fir first
  #define scn second
  
  #define YesNo(a) (a?"Yes":"No")
  #define YESNO(a) (a?"YES":"NO")
  #define yesno(a) (a?"yes":"no")
  
  
  
  /*
  確認ポイント
  cout<< (char)数値 //数値にあった文字に置き換えられる
  cout<< (double)int型/(2など)//小数になる
  YesNo大文字小文字間違えてないか
  cout << fixed << setprecision(n) << 小数計算//n桁の小数表記になる
  sqrt(数値型)でrootが取れる
  vector.unique()は隣接した同じ要素を削除するので先にソートをする
  tupleはC++11以降
  
  計算量は変わらないが楽できるシリーズ
  C++11以降でmin({a,b,c...})で複数個のmic,maxを処理できる
  min(max)_element(iter,iter)で一番小さい(大きい)値のポインタが帰ってくる
  count(iter,iter,int)でintがiterからiterの間にいくつあったかを取得できる
  
  */
  
  /*
  class any {
    public:
    // Function
  }
  */
  
  
  