#include <stdio.h>
#include <string.h>

int ans[110][10010];
int a;
char x[110];
int y[110];

void func(int k)
{
	printf("%d\n",k);
	for(int i=0;i<=a;i++)
	{
		int s = y[i]/k;
		int t = y[i]%k;
		for(int j=1;j<=t;j++) ans[i][j] = s+1;
		for(int j=t+1;j<=k;j++) ans[i][j] = s;
	}
	
	for(int j=1;j<=k;j++)
	{
		for(int i=0;i<=a;i++) printf("%d ",ans[i][j]);
		printf("\n");
	}
}

int main()
{
	scanf("%d",&a);
	scanf("%s",x+1);
	for(int i=0;i<=a;i++) scanf("%d",&y[i]);
	
	int limit = 10000;
	for(int i=limit;i>=1;i--)
	{
		int s = y[0]/i;
		int t = y[0]%i;
		for(int j=1;j<=a;j++)
		{
			int s2 = y[j]/i;
			int t2 = y[j]%i;
			if(x[j]=='<')
			{
				if(t<t2)
				{
					if(s+1 < s2+1 && s < s2+1 && s<s2);
					else goto u;
				}
				else if(t>t2)
				{
					if(s+1 < s2+1 && s+1 < s2 && s<s2);
					else goto u;
				}
				else
				{
					if(s+1 < s2+1 && s<s2);
					else goto u;
				}
			}
			else
			{
				if(t<t2)
				{
					if(s+1 > s2+1 && s > s2+1 && s>s2);
					else goto u;
				}
				else if(t>t2)
				{
					if(s+1 > s2+1 && s+1 > s2 && s>s2);
					else goto u;
				}
				else
				{
					if(s+1 > s2+1 && s>s2);
					else goto u;
				}
			}
			s = s2;
			t = t2;
		}
		
		func(i);
		return 0;
		u:;
	}
}
#include <bits/stdc++.h>
#define MOD 1000000007LL
using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int n;
int cnt1[500][500];
int cnt2[500][500];
int team[500][500];
int tgt=0;
bool deta=false;
int col[500][500];

int main(void){
	scanf("%d",&n);
	if(n==1){
		printf("1\n");
		printf("AB\n");
		return 0;
	}
	if(n==2){
		printf("3\n");
		printf("AABB\n");
		printf("ABAB\n");
		printf("ABBA\n");
		return 0;
	}
	col[0][2]=1;
	col[0][3]=1;
	col[1][1]=1;
	col[1][3]=1;
	col[2][1]=1;
	col[2][2]=1;
	int m=(1<<n);
	int s=2;
	int sz=3;
	int len=4;
	for(int i=2;i<n;i++){
		for(int j=0;j<sz;j++){
			for(int k=0;k<len;k++){
				col[j+sz][k]=col[j][k];
			}
		}
		for(int j=0;j<sz;j++){
			for(int k=0;k<len;k++){
				col[j][k+len]=col[j][k];
				col[j+sz][k+len]=1-col[j+sz][k];
			}
		}
		for(int j=0;j<len;j++){
			col[sz*2][j+len]=1;
		}
		sz=sz*2+1;
		len=len*2;
	}
	printf("%d\n",m-1);
	for(int i=0;i<m-1;i++){
		for(int j=0;j<m;j++){
			printf("%c",col[i][j]==0?'A':'B');
		}
		printf("\n");
	}
	return 0;
}
