#include <iostream>
#include <cstdio>
#include <set>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 dfs 巧妙 没掌握
int da[104][104];
int cnt[104];
int res[104][104];//抄博友程序
int n;
set<int> se;
void dfs(int x,int zhi)
{
if(x==n)
{
se.insert(zhi);
return;//抄博友程序
}
for(int i=0;i<cnt[x];i++)//没掌握
{
dfs(x+1,zhi+res[x][i]);
}
}
int main()
{
int tag=0;
while(1)
{
tag++;
se.clear();
memset(cnt,0,sizeof(cnt));//抄博友程序
cin>>n;
if(n==0)
{
break;
}
int jg=0;
for(int i=0;i<n;i++)
{
cin>>da[i][0];
int sum=0;
int mx=0;
cnt[i] = 1, res[i][0] = 0;//抄博友程序 没掌握
for(int j=1;j<=da[i][0];j++)
{
cin>>da[i][j];
sum=sum+10-da[i][j];
if(sum>mx)//抄博友程序
{
mx=sum;
cnt[i]=1;
res[i][0]=j;//抄博友程序 巧妙 没掌握
}else if(sum==mx)
{
res[i][cnt[i]++]=j;
}
}
jg=jg+mx;
}
dfs(0,0);
cout<<"Workyards "<<tag<<endl;
cout<<"Maximum profit is "<<jg<<"."<<endl;
cout<<"Number of pruls to buy: ";
int count=0;
for(set<int>::iterator it=se.begin();it!=se.end()&& count!=10;count++,it++)//抄博友程序
{
cout<<*it<<" ";
}
cout<<endl<<endl;
}
return 0;
}