#include #include #include #include #include #include #include #include #include #include using namespace std; ostream& operator << (ostream& os, vector& v){ for(int i=0; i& p, vector& b, long long last) { int n = p.size(); if(n == 1){ return 0; } int i = n-1; for(;;) { int ii = i; --i; if (p[i] < p[ii]) { int j = n; while (!(p[i] < p[--j])) {} last -= abs(p[i] - b[i]); last -= abs(p[j] - b[j]); swap(p[i], p[j]); last += abs(p[i] - b[i]); last += abs(p[j] - b[j]); for(int k=ii; k& p, vector& b){ int n = p.size(); long long ret = 0; for(int i=0; i int main(){ int n,k; cin >> n >> k; vector p(n), b(n); for(int i=0; i> p[i]; } for(int i=0; i> b[i]; } if(k==0){ cout << 0 << endl; return 0; } long long val = func(p,b); long long ans = val; if(n == 1){ for(int i=1; i