#include <bits/stdc++.h>
using namespace std;
vector<long> vec1, vec2;
long n, m;
long q;
long par[11000][111];
vector<long> solve(long l) {
  for (int i = 0; i <= 10000; i++)
    for (int ttl = 0; ttl <= l; ttl++) par[i][ttl] = 0;
  for (int i = 1; i <= 100; i++) par[i * i][1] = i;
  for (int i = 0; i <= 10000; i++)
    for (int j = 1; j < l; j++)
      for (int ad = 0; ad <= 100; ad++) {
        if (par[i][j] == 0) continue;
        if (ad * ad + i > 10000) continue;
        if (par[i + ad * ad][j + 1]) continue;
        par[i + ad * ad][j + 1] = ad;
      }
  q = 10000;
  vector<long> ans;
  for (int i = l; i; --i) {
    ans.push_back(par[q][i]);
    q -= par[q][i] * par[q][i];
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m;
  vec1 = solve(n);
  vec2 = solve(m);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cout << vec1[i] * vec2[j] << " ";
    }
    cout << endl;
  }
  cin.get();
  cin.get();
  return 0;
}
