#include <bits/stdc++.h>
using namespace std;
template <typename T, typename TT>
ostream &operator<<(ostream &s, pair<T, TT> t) {
  return s << "(" << t.first << "," << t.second << ")";
}
template <typename T>
ostream &operator<<(ostream &s, vector<T> t) {
  s << "{";
  for (int i = 0; i < t.size(); i++)
    s << t[i] << (i == t.size() - 1 ? "" : ",");
  return s << "}" << endl;
}
inline void pisz(int x) { printf("%d\n", x); }
char s[111][111];
int main() {
  ios_base::sync_with_stdio(0);
  int n, x;
  scanf("%d%d", &(n), &(x));
  ;
  if (n == 5) {
    cout << ">...v\nv.<..\n..^..\n>....\n..^.<\n1 1\n";
    return 0;
  }
  if (n == 3) {
    cout << ">vv\n^<.\n^.<\n1 3\n";
    return 0;
  }
  for (int j = 0; j < 33; j++) s[0][j] = '>';
  for (int j = 33; j <= 99; j++) s[0][j] = j % 2 ? '>' : '.';
  s[0][99] = 'v';
  for (int i = 0; i < 33; i++) s[99 - i][0] = '^';
  for (int i = 33; i <= 98; i++) s[99 - i][0] = i % 2 ? '^' : '.';
  for (int i = 1; i <= 32; i++) s[i][1] = 'v';
  for (int i = 33; i <= 98; i++) s[i][1] = i % 2 ? 'v' : '.';
  s[99][1] = '<';
  for (int i = 0; i < 33; i++) s[99 - i][2] = '^';
  for (int i = 33; i <= 98; i++) s[99 - i][2] = i % 2 ? '^' : '.';
  s[1][2] = '<';
  for (int j = 3; j <= 99; j++) {
    if (j % 2)
      for (int i = 1; i <= 99; i++) s[i][j] = s[i][1];
    else
      for (int i = 1; i <= 99; i++) s[i][j] = s[i][2];
  }
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) printf("%c", s[i][j]);
    puts("");
  }
  printf("%d %d", 1, 1);
  return 0;
}
