#include <stdio.h>
#include <stdlib.h>

void Brezenhem(int size, char z[][size], int x0, int y0, int x1, int y1)
{
  int A, B, sign;
  A = y1 - y0;
  B = x1 - x0;
  if (abs(A) > abs(B)) sign = 1;
  else sign = -1;
  int signa, signb;
  if (A < 0) signa = -1;
  else signa = 1;
  if (B < 0) signb = -1;
  else signb = 1;
  A = abs(A) + 1;
  B = abs(B) + 1;
  int f = 0;
  int x = x0, y = y0;
  if (sign == -1) 
  {
    do {
      z[y][x] = '*';
      f += A;
      if (f >= B) {
        f -= B;
        y += signa;
      }
      x += signb;
    } while (x != x1 + signb);
  }
  else
  {
    do {
      z[y][x] = '*';
      f += B;
      if (f >= A) {
        f -= A;
        x += signb;
      }
      y += signa;
    } while (y != y1 + signa);
  }
}
int main()
{
  #define SIZE 25 // размер поля
  int x1, x2, y1, y2;
  char z[SIZE][SIZE];
  for (int i = 0; i < SIZE; i++) {
    for (int j = 0; j < SIZE; j++) {
      z[i][j] = '-';
    }
  }
  printf("x1 = ");
  scanf("%d", &x1);
  printf("y1 = ");
  scanf("%d", &y1);
  printf("x2 = ");
  scanf("%d", &x2);
  printf("y2 = ");
  scanf("%d", &y2);
  Brezenhem(SIZE, z, x1, y1, x2, y2);
  for (int i = 0; i < SIZE; i++) 
  {
    for (int j = 0; j < SIZE; j++)
      putchar(z[i][j]);
    puts("");
  }
  return 0;
}