#include <bits/stdc++.h>
using namespace std;
int m, n;
int arr[105][105];
bool isSq(long long x) {
  long long xx = sqrt(.0 + x);
  for (int i = -2; i <= 2; ++i)
    if ((xx + i) * (xx + i) == x) return true;
  return false;
}
int buf[105];
long long sum[105];
int nn;
bool perebor(int pos) {
  if (pos == nn) return isSq(sum[pos]);
  for (; ++buf[pos] <= 10000;) {
    sum[pos + 1] = sum[pos] + buf[pos] * buf[pos];
    if (perebor(pos + 1)) return true;
  }
  buf[pos] = 0;
  return false;
}
int nbuf[105], mbuf[105];
int main() {
  cin >> n >> m;
  memset(buf, 0, sizeof(buf));
  memset(sum, 0, sizeof(sum));
  nn = n;
  perebor(0);
  for (int i = 0; i < n; ++i) {
    nbuf[i] = buf[i];
  }
  memset(buf, 0, sizeof(buf));
  memset(sum, 0, sizeof(sum));
  nn = m;
  perebor(0);
  for (int i = 0; i < m; ++i) {
    mbuf[i] = buf[i];
  }
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j) arr[i][j] = nbuf[i] * mbuf[j];
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) printf("%d ", arr[i][j]);
    printf("\n");
  }
  return 0;
}
