#include<bits/stdc++.h>
using namespace std;using d=double;int f(auto b,auto p,d w){unordered_map<d,int>u;vector<d>s,A,B;for(d i:p)u[i]++;for(auto i:u)while((i.second-=2)>=0)s.push_back(i.first*2);int z=s.size(),i=0,j,k=1;vector<pair<d,vector<d>>>x(1<<z/2),y(2<<z/2);d m=DBL_MAX,n,r;for(;i<z/2;i++){for(j=0;j<k;j++)x[j+k]=x[j];for(;j<k*2;x[j++].second.push_back(s[i]/2))x[j].first+=s[i];auto _=begin(x);inplace_merge(_,_+k,_+k*2);k*=2;}for(k=1;i<z;i++){for(j=0;j<k;j++)y[j+k]=y[j];for(;j<k*2;y[j++].second.push_back(s[i]/2))y[j].first+=s[i];auto _=begin(y);inplace_merge(_,_+k,_+k*2);k*=2;}for(d f:b)for(i=0,j=(1<<z-z/2)-1;i<1<<z/2&j>=0;n>w?j--:i++){n=x[i].first+y[j].first+f;abs(n-w)<m?r=f,A=x[i].second,B=y[j].second,m=abs(n-w):0;}A.insert(end(A),&B[0],&*end(B));sort(&A[0],&*end(A));for(d i:A)cout<<i<<' ';reverse(&A[0],&*end(A));for(d i:A)cout<<i<<' ';cout<<'\n'<<r;}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}