#include <bits/stdc++.h>
const double PI = acos(-1.0);
const double e = exp(1.0);
template <class T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <class T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
template <class T>
inline T Min(T a, T b) {
  return a < b ? a : b;
}
template <class T>
inline T Max(T a, T b) {
  return a > b ? a : b;
}
bool cmpbig(int a, int b) { return a > b; }
bool cmpsmall(int a, int b) { return a < b; }
using namespace std;
char ma[55][55];
int n, m;
void cs() {
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) ma[i][j] = '.';
}
void work() {
  int j;
  for (int i = 0; i < n; i++) {
    if ((i + 1) % 2 == 1) {
      j = 0;
      while (j < m) {
        ma[i][j] = '#';
        j++;
      }
    } else {
      if ((i + 1) % 2 == 0 && ((i + 1) / 2) % 2 == 1)
        ma[i][m - 1] = '#';
      else if ((i + 1) % 2 == 0 && ((i + 1) / 2) % 2 == 0)
        ma[i][0] = '#';
    }
  }
}
int main() {
  while (~scanf("%d %d", &n, &m)) {
    cs();
    work();
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) printf("%c", ma[i][j]);
      printf("\n");
    }
  }
  return 0;
}
