#include #include #include #include #include #include #include using namespace std; #define official #ifdef official #define cin inF #define cout outF #endif ifstream inF("add.in"); ofstream outF("add.out"); const int MAX_N=1000; int n,m; int a[MAX_N+100]; bool p=0; int ans[MAX_N+100]; struct num { int v,p; }; bool cmp(num a, num b) { return a.v>b.v; } num ns[MAX_N+100]; void input() { cin>>n>>m; for (int i=0; i>a[i]; } } void output() { if (p) { for (int i=0; i0) { s+=ind[p]; p-=p&(-p); } return s; } void set0() { for (int i=0; i<=MAX_N+50; ++i) { ind[i]=0; } } int test(int p) { set0(); int inv=0; for (int i=0; i=p) { inv+=get(ns[i].p+1); update(ns[i].p+1,1); } else if (ns[i].p==-1) { inv+=get(p); update(p,1); } else { inv+=get(ns[i].p); update(ns[i].p,1); } } return inv; } void solve() { for (int i=0; im) { l=mid+1; } } if (valid==-1) { p=0; return; } p=1; for (int j=0; jvalid) ans[j]=a[j-1]; if (j