program ideone;

  procedure DrawHexagon(const ASize: Integer);
  var
    intLoop: Integer;
  begin
    WriteLn(StringOfChar(' ', ASize - 1), StringOfChar('#', ASize));

    for intLoop := 0 to ASize - 2 do
      WriteLn(StringOfChar(' ', ASize - intLoop - 2), '#', StringOfChar(' ', ASize + intLoop * 2), '#');

    for intLoop := ASize - 3 downto 0 do
      WriteLn(StringOfChar(' ', ASize - intLoop - 2), '#', StringOfChar(' ', ASize + intLoop * 2), '#');

    WriteLn(StringOfChar(' ', ASize - 1), StringOfChar('#', ASize));
  end;

begin
  DrawHexagon(2);
  DrawHexagon(4);
  DrawHexagon(6);
end.
