#include <bits/stdc++.h>
using namespace std;
void cnm() {
  while (1) printf("cnm!!n");
}
const int N = 100 + 5;
char a[N][N];
const char (*s)[N];
const char S5[][N] = {">...v", "v.<..", "..^..", ">....", "..^.<"};
const char S3[][N] = {">vv", "^<.", "^.<"};
void gen() {
  int i, j;
  for (i = 0; i < (100); ++i)
    for (j = 0; j < (100); ++j) a[i][j] = '.';
  for (i = 0; i < (100); ++i) {
    if (i % 2 == 0) {
      for (j = 6; j < (56); ++j) a[i][j] = '>';
      for (j = 0; j < (20); ++j) a[i][61 + j * 2] = '>';
      a[i][99] = 'v';
    } else {
      for (j = 0; j < (20); ++j) a[i][6 + 2 * j] = '<';
      for (j = 50; j <= (99); ++j) a[i][j] = '<';
      a[i][6] = 'v';
    }
  }
  for (i = 51; i < (100); ++i) a[i][5] = '^';
  a[0][5] = '>';
  a[0][55] = '.';
  a[99][6] = '.';
  a[99][8] = '.';
  a[99][1] = '<';
}
int main() {
  int TT = 1;
  for (int tt = 1; tt <= TT; ++tt) {
    int i;
    int n, x;
    cin >> n >> x;
    pair<int, int> p;
    switch (n) {
      case 3:
        s = S3;
        p = make_pair(1, 3);
        break;
      case 5:
        s = S5;
        p = make_pair(1, 1);
        break;
      case 100:
        gen();
        s = a;
        p = make_pair(1, 6);
        break;
      default:
        cnm();
    }
    for (i = 0; i < (n); ++i) printf("%s\n", s[i]);
    cout << p.first << ' ' << p.second << endl;
  }
  return 0;
}
