#include <bits/stdc++.h>
using namespace std;
int row, col;
int Size;
int R[110], C[110], tmp[110];
bool flag;
bool judge(int *arr) {
  int sum = 0;
  for (int i = 0; i < Size; i++) sum += arr[i] * arr[i];
  int sq = sqrt(sum);
  return (bool)(sq * sq == sum);
}
void Build(int d, int *arr) {
  if (flag) return;
  if (d == Size) {
    if (judge(tmp)) {
      flag = true;
      for (int i = 0; i < Size; i++) {
        arr[i] = tmp[i];
      }
    }
    return;
  }
  for (int i = 1; i <= 10; i++) {
    tmp[d] = i;
    Build(d + 1, arr);
  }
}
int main() {
  cin >> row >> col;
  Size = row;
  flag = false;
  Build(0, R);
  flag = false;
  Size = col;
  Build(0, C);
  for (int i = 0; i < row; i++) {
    for (int j = 0; j < col; j++) {
      cout << R[i] * C[j] << " ";
    }
    cout << endl;
  }
  return 0;
}
