#include <bits/stdc++.h>
std::string bre() {
  std::vector<std::vector<int>> vec;
  int x[2];
  std::string str = "#.";
  std::stringstream cout;
  do {
    std::cin >> x[0] >> x[1];
    if (x[0] != 0 && x[1] != 0) vec.push_back(std::vector<int>{x[0], x[1]});
  } while (x[0] != 0 && x[1] != 0);
  for (auto v : vec) {
    str = "#.";
    for (int i = 0; i < v[0]; ++i) {
      for (int j = 0; j < v[1] / 2; ++j) {
        cout << str;
      }
      if (v[1] % 2 != 0) str[1] == '.' ? cout << "#" : cout << ".";
      cout << std::endl;
      std::reverse(str.begin(), str.end());
    }
    cout << std::endl;
  }
  return cout.str();
}
template <typename T>
T input() {
  T t;
  std::cin >> t;
  return t;
}
std::string I() {
  std::stringstream cout;
  while (true) {
    const auto H = input<int>();
    const auto W = input<int>();
    if (H == 0 && W == 0) return cout.str();
    for (int i = 0; i < H; ++i) {
      for (int j = 0; j < W; ++j) cout << ((i + j) % 2 == 0 ? '#' : '.');
      cout << std::endl;
    }
    cout << std::endl;
  }
}
int main() {
  const auto bre = ::bre();
  const auto I = ::I();
  std::cout << bre << std::endl;
  std::cout << "------" << std::endl;
  std::cout << I << std::endl;
  std::cout << "------" << std::endl;
  auto bb = bre.begin();
  auto ib = I.begin();
  while (bb != bre.end() && ib != I.end()) {
    if (*bb == *ib)
      std::cout << *bb;
    else
      std::cout << "[" << (*bb == '\n' ? "\\n" : std::string(1, *bb).c_str())
                << "/" << (*ib == '\n' ? "\\n" : std::string(1, *ib).c_str())
                << "]";
    ++bb;
    ++ib;
  }
  return 0;
}
