#include <bits/stdc++.h>
using namespace std;
inline int in() {
  int x, y;
  y = scanf("%d", &x);
  return x;
}
const int N = 133;
int dx[500], dy[500];
int delx[4] = {0, 1, 0, -1}, dely[4] = {1, 0, -1, 0},
    ch[4] = {'>', 'v', '<', '^'};
string s[N];
void chap(string *s, int n, int ans) {
  for (int i = 0; i < (n); i++) {
    for (int j = 0; j < (n); j++) cout << s[i][j];
    cout << endl;
  }
  if (ans) cout << ans << endl << endl;
}
bool out(int x, int y, int n) { return x < 0 or x >= n or y < 0 or y >= n; }
int simulate(string *s, int n, int x, int y) {
  int ans = 0;
  bool sound = false;
  while (true) {
    if (s[x][y] == '.') break;
    int tx = x + dx[s[x][y]];
    int ty = y + dy[s[x][y]];
    if (out(tx, ty, n)) {
      if (sound) {
        ans++;
      }
      break;
    }
    if (s[tx][ty] == '.') {
      swap(s[tx][ty], s[x][y]);
      sound = true;
    } else {
      if (sound) {
        ans++;
      }
      sound = false;
    }
    x = tx;
    y = ty;
  }
  return ans;
}
void move(int &x, int &y, int dir, int z = 1) {
  x += delx[dir] * z;
  y += dely[dir] * z;
}
void segment(int x, int y, int dir, int len) {
  if (len <= 3) return;
  int mxi, mx = -1;
  for (int i = 2; i < len; i += 2) {
    int t = i * (len - i + 1) / 2;
    if (t > mx) mxi = i;
    mx = max(mx, t);
  }
  for (int i = 0; i < mxi; i++) {
    s[x][y] = ch[dir];
    move(x, y, dir);
  }
  move(x, y, dir);
  int left = (len - mxi + 1) / 2;
  for (int i = 1; i < left; i++) {
    s[x][y] = ch[dir];
    move(x, y, dir, 2);
  }
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  dy['>'] = 1;
  dy['<'] = -1;
  dx['v'] = 1;
  dx['^'] = -1;
  int n, x;
  cin >> n >> x;
  if (n == 5) {
    cout << ">...v\n";
    cout << "v.<..\n";
    cout << "..^..\n";
    cout << ">....\n";
    cout << "..^.<\n";
    cout << "1 1\n";
    return 0;
  }
  if (n == 3) {
    cout << ">.v\n";
    cout << "...\n";
    cout << "^.<\n";
    cout << "1 1" << endl;
    return 0;
  }
  for (int i = 0; i < (n); i++) s[i] = string(n, '.');
  for (int i = 0; i < (n); i++) {
    s[0][i] = '>';
    s[n - 1][i] = '<';
    s[i][0] = '^';
  }
  s[0][0] = '>';
  s[0][n - 1] = 'v';
  for (int i = 1; i < n - 1; i++) {
    int y = (i % 2 ? n - 1 : 1);
    segment(i, y, (i % 2 ? 2 : 0), n - 2);
    s[i][n - y] = 'v';
  }
  chap(s, n, 0);
  cout << 1 << ' ' << 1 << endl;
  cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
  return 0;
}
