Program Subsets;

{ JIRI HAJEK - CZECH REPUBLIC }
{$r-}

uses crt;

var f:text;

procedure VypisMnozinu(pocet:byte);
var k:longint;
    a:byte;
    oldpoz,poz,poc:longint;
begin
  Readln(f,k);
  poz:=1;
  poc:=1;
  for a:=1 to pocet do poc:=poc shl 1;
  inc(poc);
  oldpoz:=0;
  if k=1 then Writeln('{}')
         else
           begin
             Write('{');
             While true do
               begin
                 a:=pocet;
                 While poc-poz>k do
                   begin
                     oldpoz:=poz;
                     poz:=poz shl 1+1;
                     dec(a);
                   end;
                 if poc-poz=k
                   then begin Write(a); break; end
                   else
                     begin
                       Write(a,',');
                       k:=k-(poc-poz)+1;
                       poc:=poz-oldpoz+1;
                       oldpoz:=0;
                       poz:=1;
                     end;
               end;
             Writeln('}');
           end;
end;

procedure Spocti;
var ch:char;
    pom:char;
    pocet:byte;
    k:byte;
    lastk:byte;
    cislo:longint;
    kolik:longint;
    oldkolik:longint;
    a:byte;
begin
  Read(f,ch,pom,pocet);
  case ch of
    '1': begin Read(f,pom); VypisMnozinu(pocet); end;
    '2': begin
           cislo:=1;
           lastk:=0;
           while not(eoln(f)) do
             begin
               read(f,pom,k);
               kolik:=1;
               for a:=1 to pocet-1 do kolik:=kolik shl 1+1;
               oldkolik:=kolik;
               for a:=1 to pocet-(k-lastk)+1 do kolik:=kolik shl 1;
               kolik:=kolik and oldkolik;
               cislo:=cislo+kolik+1;
               dec(pocet,k-lastk);
               lastk:=k;
             end;
           Writeln(cislo);
           Readln(f);
         end;
  end;
end;

begin
  clrscr;
  Assign(f,'p6.txt');
  Reset(f);
  While not( eof(f)) do Spocti;
  Close(f);
  writeln;
  writeln('Press ENTER to exit...');
  readln
end.