program atsiskaitymas_doleriais;
  { 26 u‘davinys }
  const byla = 'ATSISK.DAT';
        MAXN = 100; { maksimalus ‘moni— skai‡ius }
  type lentele = array [1..MAXN] of integer;
       likutis = record
                   suma : real;
                   nm : integer; { kuriam ‘mogui priklauso likutis }
                 end;
       likuciai = array [1..MAXN] of likutis;

    procedure rikiuoti (n : integer;
                        var cent : likuciai);
    { suružiuoja skai‡ius ma‘‚jimo tvarka }
    { r–žiuojama burbuliuko metodu }
    var i : integer;
        a : likutis;
  begin
    i := 1;
    while i < n do
      if cent[i].suma >= cent[i + 1].suma
         then i := i + 1
         else begin
                a := cent[i];
                cent[i] := cent[i + 1];
                cent[i + 1] := a;
                if i > 1
                   then i := i - 1
                   else i := i + 1;
              end
  end;

  procedure padalinti (n, { ‘moni— skai‡ius }
                       m : integer; { doleri— skai‡ius }
                       p : lentele; { ind‚lis procentais }
                       var sum : lentele { iždalinti pinigai });
    var i, liko : integer;
        uzd : real;
        cent : likuciai;
  begin
    liko := m;
    { iždalinsime sveik…j… dal ir suskai‡iuosime u‘dirbtus centus }
    for i := 1 to n do
      begin
        sum[i] := p [i] * m div 100;
        liko := liko - sum[i];
        cent[i].suma := p [i] * m / 100  - sum[i];
        cent[i].nm := i;
      end;
    { surikiuojama pagal u‘dirbtus centus }
    rikiuoti (n, cent);
    { iždalinami likŠ doleriai }
    for i := 1 to liko do
      sum[cent[i].nm] := sum [cent[i].nm] + 1;
  end;

  var f : text;
      m, n, i : integer;
      p, sum : lentele;
begin
  assign (f, byla);
  reset (f);
  readln (f, m, n);
  for i := 1 to n do
    read (f, p[i]);
  padalinti (n, m, p, sum);
  for i := 1 to n do
    write (sum[i], ' ');
end.