1 #include<iostream>
2 #include<cstdio>
3 #include<cmath>
4 #include<cstring>
5 #include<algorithm>
6 #include<queue>
7 #include<map>
8 #include<set>
9 #include<vector>
10 #include<cstdlib>
11 #include<string>
12 #define eps 0.000000001
13 typedef long long ll;
14 typedef unsigned long long LL;
15 using namespace std;
16 const int maxc=9;
17 const int maxk=100;
18 set<int>value[maxc];
19 int C,x[maxc],k[maxc];
20 int y[maxc][maxk];
21 int a[maxc];
22 ll exgcd(ll a,ll b,ll &xx,ll &yy){
23 if(b==0){
24 xx=1;yy=0;return a;
25 }
26 ll r=exgcd(b,a%b,xx,yy);
27 ll t=yy;
28 yy=xx-(a/b)*yy;
29 xx=t;
30 return r;
31 }
32 ll CRT(int a[],int m[],int n){//ÖйúÊ£ÓඨÀí
33 ll M=1;
34 ll ans=0;
35 for(int i=0;i<n;i++)M=M*m[i];
36 for(int i=0;i<n;i++){
37 ll Mi=M/m[i];
38 ll xx,yy;
39 ll r=exgcd(Mi,(ll)m[i],xx,yy);
40 ans=(ans+xx*a[i]*Mi)%M;
41 }
42 if(ans<0)ans=(ans+M)%M;
43 return ans;
44 }
45 void solve_enum(int S,int bc){
46 for(int c=0;c<C;c++)
47 if(c!=bc){
48 value[c].clear();
49 for(int i=0;i<k[c];i++)value[c].insert(y[c][i]);
50
51 }
52 for(int t=0;S!=0;t++){
53 for(int i=0;i<k[bc];i++)
54 {
55 ll n=(ll)x[bc]*t+y[bc][i];
56 if(n==0)continue;
57 bool ok=true;
58 for(int c=0;c<C;c++)if(c!=bc)
59 if(!value[c].count(n%x[c])){ok=false;break;}
60 if(ok){
61 printf("%lld\n",n);
62 if(--S==0)break;
63 }
64 }
65 }
66 }
67 vector<ll>sol;
68 void dfs(int dep){
69 if(dep==C)sol.push_back(CRT(a,x,C));
70 else{
71 for(int i=0;i<k[dep];i++){
72 a[dep]=y[dep][i];
73 dfs(dep+1);
74 }
75 }
76 }
77 void solve_china(int S){
78 sol.clear();
79 dfs(0);
80 sort(sol.begin(),sol.end());
81 ll M=1;
82 for(int i=0;i<C;i++)M=M*x[i];
83 vector<ll>ans;
84 for(int i=0;S!=0;i++){
85 for(int j=0;j<sol.size();j++){
86 ll n=M*i+sol[j];
87 if(n>0){
88 printf("%lld\n",n);
89 if(--S==0)break;
90 }
91 }
92 }
93 }
94 int main(){
95 int S;
96 while(scanf("%d%d",&C,&S)!=EOF){
97 if(C==0&&S==0)break;
98 ll tot=1;
99 int bestc=0;
100 for(int c=0;c<C;c++){
101 scanf("%d%d",&x[c],&k[c]);
102 tot=tot*k[c];
103 for(int i=0;i<k[c];i++)scanf("%d",&y[c][i]);
104 sort(y[c],y[c]+k[c]);
105 if(k[c]*x[bestc]<k[bestc]*x[c])bestc=c;
106 }
107 if(tot>10000)solve_enum(S,bestc);
108 else{
109 // cout<<1<<endl;
110 solve_china(S);
111 }
112 cout<<endl;
113 }
114 }