program sven19a;

TYPE	vektor(n: Integer)=array[0..n-1]of double;

	vektorarray(n: Integer)=array[1..100]of vektor(n);
	
VAR	a: ^vektorarray;
    i: integer;

BEGIN	new(a, 3);
 if a^.n <> 3 then begin writeln ('failed 1: ', a^.n); halt (1) end;
 for i := 1 to 100 do
   if a^[i].n <> 3 then begin writeln ('failed 2: ', i, ' ', a^[i].n); halt (1) end;
 if (Sizeof(a^) < 300 * SizeOf (Double) + 101 * SizeOf (Integer)) and (Sizeof(a^) > 300 * SizeOf (Double) + 101 * Max (SizeOf (Integer), AlignOf (Double))) then begin writeln ('failed 3: ', Sizeof(a^)); halt (1) end;
 for i := 1 to 100 do
   if (Sizeof(a^[i]) < 3 * SizeOf (Double) + SizeOf (Integer)) and (Sizeof(a^[i]) > 3 * SizeOf (Double) + Max (SizeOf (Integer), AlignOf (Double))) then begin writeln ('failed 4: ', i, ' ', Sizeof(a^[i])); halt (1) end;
 writeln ('OK')
END.
