#include <iostream>
#include <cstdio>
#include <cstring>
#include <iomanip>
#include <cmath>
using namespace std;
//英语 看博友分析 抄博友程序 memcpy使用 dfs 背
double da[100];
int m,n;
double am;
double tmp[20][10];
double jg[20][10];
double mn;
void dfs(int x)
{
if(x>=n)
{
int flag=0;
double jl=0;
for(int i=0;i<m;i++)
{
double sum=0;
//cout<<i<<":";
for(int j=0;j<tmp[i][0];j++)
{
sum=sum+tmp[i][j+1];
//cout<<" "<<tmp[i][j+1];
}
//cout<<endl;
jl=jl+fabs(sum-am);
}
//cout<<jl<<endl;
if(mn==-1||jl<mn)
{
mn=jl;
memcpy(jg,tmp,sizeof(tmp));//
}
return;
}
for(int i=0;i<m;i++)//背
{
if(tmp[i][0]==2)
{
continue;
}
tmp[i][(int)++tmp[i][0]]=da[x];//抄博友程序
dfs(x+1);
tmp[i][0]--;//抄博友程序
}
}
int main()
{
int tag=0;
while(1)
{
cin>>m>>n;
if(cin.eof()==1)
{
break;
}
am=0;
for(int i=0;i<n;i++)
{
cin>>da[i];
am=am+da[i];
}
am=am/m;//
//cout<<am<<endl;
memset(tmp,0,sizeof(tmp));
memset(jg,0,sizeof(jg));
mn=-1;
dfs(0);
tag++;
cout<<"Set #"<<tag<<endl;
for(int i=0;i<m;i++)
{
cout<<" "<<i<<":";
for(int j=0;j<jg[i][0];j++)
{
cout<<" "<<(int)jg[i][j+1];
}
cout<<endl;
}
cout<<"IMBALANCE "<<fixed<<setprecision(5)<<mn<<endl<<endl;
}
return 0;
}