#include
#include
#include
//#include
using namespace std;
vector>graph[2000];
int dp[2002][4100];
int n;
int dinamicko(int i, int prev_number){
if(i==n){
return 0;
}
if(dp[i][prev_number]!=-1){
return dp[i][prev_number];
}
int result = 2e9;
int min_number_of_swaps = 2e9;
for(int j=0; j>n;
for(int i=0; i>a;
for(int bitmask=0; bitmask<(1<<12); bitmask++){
if(__builtin_popcount(bitmask)== __builtin_popcount(a)){
graph[i].push_back(make_pair(bitmask, (__builtin_popcount(a^bitmask))/2));
}
}
}
memset(dp, -1, sizeof dp);
cout<