#include <bits/stdc++.h>
using namespace std;
const int MX = 105, INF = 1000010000;
const long long int LINF = 1000000000000000000ll;
const double eps = 1e-10;
const int dx[] = {-1, 0, 1, 0}, dy[] = {0, -1, 0, 1};
int x[MX], y[MX];
int r[MX], h[MX];
int main() {
  for (int i = 1; i <= 100; i++)
    for (int j = 1; j <= 100; j++)
      for (int k = 0; k < 100; k++) {
        if (x[k] != 0) continue;
        int a = (i + j) * (i + j) - i * i - k;
        if (a > 0) {
          int s = (int)sqrt(a);
          if (s * s == a) {
            x[k] = i;
            y[k] = s;
          }
        }
      }
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < n; i++) r[i] = 1;
  for (int i = 0; i < m; i++) h[i] = 1;
  if (n >= 2) {
    int a = n - 2;
    r[0] = x[a];
    r[1] = y[a];
  }
  if (m >= 2) {
    int a = m - 2;
    h[0] = x[a];
    h[1] = y[a];
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++)
      printf("%d%c", r[i] * h[j], j == m - 1 ? '\n' : ' ');
  }
  return 0;
}
