I tried to read the input for a task with blockread but I got a strange runtime error (NZEC). Here's how I did it:

var buf:array[1..1 shl 23] of byte;
f:file;
begin
  assign(f,''); reset(f,1);
  blockread(f, buf, sizeof(buf));
end.

If someone managed to use blockread or blockwrite in their program, please tell me how.