#include <stdio.h>

void print_line(int width, char c1, char c2)
{
  int i;

  printf("%c", c1);
  for (i=0; i<width; i++) {
    printf("%c", c2);
  }
}

void print_beam(int n, int width)
{
  int i;

  for (i=0; i<n; i++) {
    print_line(width, '+', '-');
  }
  printf("+\n");
}

void print_posts(int n, int width)
{
  int i;

  for (i=0; i<n; i++) {
    print_line(width, '|', ' ');
  }
  printf("|\n");
}

void print_row(int n, int width, int height)
{
  int i;
  print_beam(n, width);

  for (i=0; i<height; i++) {
    print_posts(n, width);
  }
}

void print_grid(int n, int width, int height)
{
  int i;

  for (i=0; i<n; i++) {
    print_row(n, width, height);
  }
  print_beam(n, width);
}

int main()
{
  print_grid(5, 5, 3);
  return 0;
}
