program StudentTask;
 
type
  stud = record
    pr: string[15];              
    im: string[10];              
    d: integer;                  
    m: integer;                  
    r: integer;                  
    rv: integer;                 
    nk: integer;                 
    ng: string[10];             
    ocinLP: array[1..3, 1..5] of integer;
    ser: real;                   
  end;
 
var
  FL: array[1..50] of stud;
  N, i, s, p: integer;
  sum: real;
  serGR: real;
  count: integer;
  ch: char;
 
begin
  serGR := 0;
  N := 0;
  ch := 'y';
 
  writeln('Please enter students data:');
 
  while (ch = 'y') or (ch = 'Y') do
  begin
    N := N + 1;
    writeln('Enter ', N, '. student:');
 
    readln(FL[N].pr);
    readln(FL[N].im);
    readln(FL[N].d, FL[N].m, FL[N].r, FL[N].rv, FL[N].nk);
    readln(FL[N].ng);
 
    writeln('Enter 3 semesters of 5 marks:');
    for s := 1 to 3 do
    begin
      for p := 1 to 5 do
      begin
        read(FL[N].ocinLP[s, p]);
      end;
      readln;
    end;
 
    readln(ch);
  end;
 
  for i := 1 to N do
  begin
    sum := 0;
    for p := 1 to 5 do
    begin
      sum := sum + FL[i].ocinLP[3, p];
    end;
    FL[i].ser := sum / 5.0;
    serGR := serGR + FL[i].ser;
  end;
 
  if N > 0 then
    serGR := serGR / N
  else
    serGR := 0;
 
  writeln;
  writeln('Group average for last session = ', serGR:0:2);
  writeln('Results list (students with average lower than group average):');

  count := 0;
  for i := 1 to N do
  begin
    if FL[i].ser < serGR then
    begin
      count := count + 1;
      writeln(count, '. ', FL[i].pr, ' ', FL[i].im);
      writeln('   Birth date: ', FL[i].d, '.', FL[i].m, '.', FL[i].r);
      writeln('   Entry year: ', FL[i].rv, ', Course: ', FL[i].nk, ', Group: ', FL[i].ng);
 
      writeln('   Marks for all semesters:');
      for s := 1 to 3 do
      begin
        write('     Semester ', s, ': ');
        for p := 1 to 5 do
        begin
          write(FL[i].ocinLP[s, p], ' ');
        end;
        writeln; 
      end;
      writeln('   Average for last session: ', FL[i].ser:0:2);
      writeln;
    end;
  end;
 
  if count = 0 then
    writeln('No students with average mark lower than group average.');
 
end.