#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 贪心+二分 没掌握
//输出与样例不同
int da[30010];
int n;
int cnt;
int tmp[30010];
int sc[30010];
bool check(int time)
{
int ttt=0;
int t=0;
int flag=0;
int now=1;//抄博友程序
for(int i=0;i<n;i++)
{
if((da[i]-now)*20+t>time)//抄博友程序
{
if(flag==1)
{
t=t+10;
}
if(t+(da[i]-now)*4>time)
{
return false;
}
int j;
for(j=da[i];(j-now)*4+(j-da[i])*20+t<=time;j++);//抄博友程序
j--;
t=t+(j-now)*4;//抄博友程序
now=j;
tmp[ttt++]=j;
flag=1;
}
}
cnt=ttt;
for(int i=0;i<cnt;i++)
{
sc[i]=tmp[i];
}
return true;
}
int main()
{
while(1)
{
scanf("%d",&n);
if(n==0)
{
break;
}
for(int i=0;i<n;i++)
{
scanf("%d",&da[i]);
}
sort(da,da+n);//博友没加 没掌握
int l=0;
int r=30000*20+1;
int jg;
while(l<=r)
{
int mid=(l+r)/2;
//cout<<l<<" "<<r<<" "<<mid<<endl;
if(check(mid))
{
r=mid-1;
jg=mid;
}else
{
l=mid+1;
}
}
cout<<jg<<endl;
cout<<cnt<<" ";
for(int i=0;i<cnt;i++)
{
cout<<sc[i]<<" ";
}
cout<<endl;
}
return 0;
}