#include <bits/stdc++.h>
using namespace std;
struct Node {
  int x, y;
  Node() {}
  Node(int a, int b) {
    x = a;
    y = b;
  }
};
queue<Node> que;
int n, m;
char tu[2005][2005];
int x_temp[] = {0, 0, 1, -1};
int y_temp[] = {1, -1, 0, 0};
int Count(int x, int y) {
  int count = 0;
  for (int i = 0; i < 4; i++) {
    int xx = x + x_temp[i];
    int yy = y + y_temp[i];
    if (xx >= 0 && xx < n && yy >= 0 && yy < m && tu[xx][yy] == '.') {
      count++;
    }
  }
  return count;
}
void check(int x, int y) {
  for (int i = 0; i < 4; i++) {
    int xx = x + x_temp[i], yy = y + y_temp[i];
    if (xx >= 0 && xx < n && yy >= 0 && yy < m && tu[xx][yy] == '.') {
      if (Count(xx, yy) == 1) {
        que.push(Node(xx, yy));
      }
    }
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%s", tu[i]);
  }
  while (!que.empty()) que.pop();
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (tu[i][j] == '*') {
        continue;
      }
      if (Count(i, j) == 1) {
        que.push(Node(i, j));
      }
    }
  }
  while (!que.empty()) {
    Node node;
    node = que.front();
    que.pop();
    int x, y;
    x = node.x;
    y = node.y;
    for (int i = 0; i < 4; i++) {
      int temp_x = x + x_temp[i], temp_y = y + y_temp[i];
      if (temp_x >= 0 && temp_x < n && temp_y >= 0 && temp_y < m &&
          tu[temp_x][temp_y] == '.') {
        if (i == 0) {
          tu[x][y] = '<';
          tu[temp_x][temp_y] = '>';
        } else if (i == 1) {
          tu[temp_x][temp_y] = '<';
          tu[x][y] = '>';
        } else if (i == 2) {
          tu[x][y] = '^';
          tu[temp_x][temp_y] = 'v';
        } else if (i == 3) {
          tu[temp_x][temp_y] = '^';
          tu[x][y] = 'v';
        }
        check(x, y);
        check(temp_x, temp_y);
        break;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (tu[i][j] == '.') {
        printf("Not unique\n");
        return 0;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    puts(tu[i]);
  }
  return 0;
}
