#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *f1,*f2;
int flag[100];
int tiao[1000][1000];
int n;
int result = 0;
void Init()
{
for(int i=1;i<=n;i++)
if(i <= n/2)
flag[i] = -1;
else
flag[i] = 1;
flag[n/2+1] = 0;
}
void Print(int tiao[])
{
for(int i=1;i<=n;i++)
if(tiao[i]==-1)
fprintf(f2,"> ");
else if(tiao[i]==0)
fprintf(f2,"_ ");
else
fprintf(f2,"< ");
fprintf(f2,"\n");
}
void copy(int *a,int *b)
{
for(int i=1;i<=n;i++)
b[i] = a[i];
}
void swap(int i,int j)
{
int temp = flag[i];
flag[i] = flag[j];
flag[j] = temp;
}
void Tiao(int index,int len)
{
int sum = 0;
for(int i=1;i<=n/2;i++)
sum+=flag[i];
copy(flag,tiao[len]);
if(sum == n/2 && flag[n/2+1] ==0)
{
result ++;
fprintf(f2,"%d:The flag Task is OK!!!\n",result);
for(int i=0;i<=len;i++)
Print(tiao[i]);
}
else
{
if(index-1 > 0 && flag[index-1] == -1)
{
swap(index,index-1);
Tiao(index-1,len+1);
swap(index,index-1);
}
if(index-2 > 0 && flag[index-2] == -1)
{
swap(index,index-2);
Tiao(index-2,len+1);
swap(index,index-2);
}
if(index+1 <= n && flag[index+1] == 1)
{
swap(index,index+1);
Tiao(index+1,len+1);
swap(index,index+1);
}
if(index+2 <= n && flag[index+2] == 1)
{
swap(index,index+2);
Tiao(index+2,len+1);
swap(index,index+2);
}
}
}
int main()
{
f1 = fopen("1.in","r");
f2 = fopen("1.out","w");
fscanf(f1,"%d",&n);
if(n%2==1)
{
Init();
Tiao(n/2+1,0);
}
else
fprintf(f2,"Please check the correctness of the n ! The n is Odd!");
fclose(f1);
fclose(f2);
return 0;
}