Задача 20 урок 13.1

Задача 20 урок 13.1

Пользователь передает целые положительные число N и M, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M чисел, то уменьшалась до 1.

program zadacha20;
var i, j, n, m, p: integer;
    x: boolean;
begin
  writeln('Vvedite chislo N:');
  readln(n);
  writeln('Vvedite chislo M:');
  readln(p);
  m:=1;
  i:=1;
  x:=false;
  repeat    //цикл, который прогоняет строки
    j:=1;              //j - cчетчик коллчества символов в строке, обнуляем каждый проход цикла
      while (j<=m) and (i<=n) do             //цикл, печатающий строки
      begin
        write(i, ' ');
        i:=i+1;
        j:=j+1;
      end;
    writeln();
      If x then   //проверяем, увеличиваем строку или уменьшаем
        m:=m-1
      else
        m:=m+1;
      if m = p then       //провряем, дошли до пользовательского значния или вернулись к 1
        x := true;
      if m = 1 then
        x := false;
  until i>=n;
  readln();
end.    

Консоль:

Vvedite chislo N:
100
Vvedite chislo M:
5
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19
20 21 22
23 24
25
26 27
28 29 30
31 32 33 34
35 36 37 38 39
40 41 42 43
44 45 46
47 48
49
50 51
52 53 54
55 56 57 58
59 60 61 62 63
64 65 66 67
68 69 70
71 72
73
74 75
76 77 78
79 80 81 82
83 84 85 86 87
88 89 90 91
92 93 94
95 96
97
98 99