#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2005;
int id[MAXN];
int cnt[MAXN];
vector<int> graph[MAXN];
int outDegree[MAXN];
int n, m;
char str[MAXN][MAXN];
bool vis[MAXN];
int value[MAXN];
int findRoot(int a) {
  if (id[a] == a) {
    return a;
  }
  return id[a] = findRoot(id[a]);
}
void unite(int a, int b) {
  int ra = findRoot(a), rb = findRoot(b);
  id[rb] = ra;
  if (ra != rb) cnt[ra] += cnt[rb];
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    id[i] = i;
    cnt[i] = 1;
  }
  for (int i = 1; i <= n; i++) {
    id[i + m] = i + m;
    cnt[i + m] = 1;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%s", str[i] + 1);
    for (int j = 1; j <= m; j++) {
      if (str[i][j] == '=') {
        unite(i + m, j);
      }
    }
  }
  bool yes = true;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      int ri = findRoot(i + m), rj = findRoot(j);
      if (str[i][j] != '=' && ri == rj) {
        yes = false;
      }
      if (str[i][j] == '>') {
        graph[rj].push_back(ri);
        outDegree[ri]++;
      } else if (str[i][j] == '<') {
        graph[ri].push_back(rj);
        outDegree[rj]++;
      }
    }
  }
  int sum = 0;
  queue<int> que;
  for (int i = 1; i <= n + m; i++) {
    int rt = findRoot(i);
    if (!vis[rt] && outDegree[rt] == 0) {
      vis[rt] = true;
      que.push(rt);
      sum += cnt[rt];
      value[rt] = 1;
    }
  }
  while (!que.empty()) {
    int u = que.front();
    que.pop();
    for (int i = 0; i < graph[u].size(); i++) {
      int v = graph[u][i];
      value[v] = max(value[v], value[u] + 1);
      outDegree[v]--;
      if (outDegree[v] == 0) {
        que.push(v);
        sum += cnt[v];
      }
    }
  }
  if (n + m != sum) {
    yes = false;
  }
  if (!yes) {
    puts("No");
  } else {
    puts("Yes");
    for (int i = 1; i <= n; i++) {
      printf("%d ", value[findRoot(i + m)]);
    }
    putchar('\n');
    for (int i = 1; i <= m; i++) {
      printf("%d ", value[findRoot(i)]);
    }
    putchar('\n');
  }
  return 0;
}
