#include <bits/stdc++.h>
using namespace std;
int a[1010][1010];
int main() {
  int n, A, b;
  scanf("%d%d%d", &n, &A, &b);
  if (A > 1 && b > 1) return puts("NO"), 0;
  if (n == 2 && A == 1 && b == 1) return puts("NO"), 0;
  if (n == 3 && A == 1 && b == 1) return puts("NO"), 0;
  puts("YES");
  for (int i = 1; i <= n - max(A, b); ++i) {
    a[i][i + 1] = 1;
    a[i + 1][i] = 1;
  }
  if (b > 1) {
    for (int i = 1; i <= n; ++i) {
      for (int j = 1; j <= n; ++j)
        if (i != j) {
          a[i][j] ^= 1;
        }
    }
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) printf("%d", a[i][j]);
    puts("");
  }
}
