const char * UsageLines [] = {
	"Usage: lettertopbm (width) (height)",
	"Places letters of text in a pbm image.  Each letter is specified",
	"in a line of standard input of the form:",
	"(across) (down) (orientation) (height) (letter)",
	"",
	"(across) and (down) are integers specifying where the center",
	"of the letter is to be placed on the output image.  If both",
	"are zero, for example, the letter is centered on the image.",
	"(orientation) must be 0, 1, 2, or 3:",
	"0 = upright",
	"1 = rotated 90 degrees clockwise",
	"2 = rotated 180 degrees",
	"3 = rotated 270 degrees clockwise",
	"",
	"(height) is the height of the family of letters - not all will",
	"fill the entire height.",
	"Anything after a #, either at the beginning of a line or after",
	"the letter, is considered a comment.",
	"Writes a PBM image to standard output.",
	"August 19, 2012.  Latest is at gopher://sdf.org/1/users/julianbr",
	"",
	};
const int NumUsageLines = sizeof (UsageLines)/sizeof (UsageLines [0] );

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


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [7];
	} Outlines07 [] = {
	{"a", 3, {0, 7, 1, 7, 5, 7, 0, } },
	{"b", 3, {4, 7, 5, 5, 5, 7, 0, } },
	{"c", 3, {0, 7, 4, 4, 4, 7, 0, } },
	{"d", 3, {1, 7, 5, 5, 5, 7, 0, } },
	{"e", 3, {0, 7, 5, 7, 4, 7, 0, } },
	{"f", 2, {3, 2, 2, 3, 2, 2, 0, } },
	{"g", 3, {0, 7, 5, 5, 7, 1, 7, } },
	{"h", 3, {4, 7, 5, 5, 5, 5, 0, } },
	{"i", 1, {1, 0, 1, 1, 1, 1, 0, } },
	{"j", 3, {1, 0, 1, 1, 1, 1, 7, } },
	{"k", 3, {4, 5, 5, 6, 5, 5, 0, } },
	{"l", 1, {1, 1, 1, 1, 1, 1, 0, } },
	{"m", 5, {0, 31, 21, 21, 21, 21, 0, } },
	{"n", 3, {0, 7, 5, 5, 5, 5, 0, } },
	{"o", 3, {0, 7, 5, 5, 5, 7, 0, } },
	{"p", 3, {0, 7, 5, 5, 5, 7, 4, } },
	{"q", 3, {0, 7, 5, 5, 7, 1, 1, } },
	{"r", 3, {0, 7, 4, 4, 4, 4, 0, } },
	{"s", 3, {0, 7, 4, 7, 1, 7, 0, } },
	{"t", 3, {4, 7, 4, 4, 4, 3, 0, } },
	{"u", 3, {0, 5, 5, 5, 5, 7, 0, } },
	{"v", 4, {0, 9, 9, 10, 6, 4, 0, } },
	{"w", 5, {0, 17, 17, 21, 21, 10, 0, } },
	{"x", 4, {0, 9, 9, 6, 9, 9, 0, } },
	{"y", 4, {0, 9, 9, 5, 6, 4, 8, } },
	{"z", 4, {0, 15, 1, 2, 4, 15, 0, } },
	{"A", 5, {4, 10, 10, 31, 17, 17, 0, } },
	{"B", 4, {14, 9, 9, 14, 9, 14, 0, } },
	{"C", 4, {7, 4, 8, 8, 4, 7, 0, } },
	{"D", 4, {14, 9, 9, 9, 9, 14, 0, } },
	{"E", 4, {15, 8, 15, 8, 8, 15, 0, } },
	{"F", 4, {15, 8, 15, 8, 8, 8, 0, } },
	{"G", 5, {14, 8, 16, 19, 10, 14, 0, } },
	{"H", 4, {9, 9, 15, 9, 9, 9, 0, } },
	{"I", 3, {7, 2, 2, 2, 2, 7, 0, } },
	{"J", 4, {3, 1, 1, 9, 9, 6, 0, } },
	{"K", 5, {17, 18, 20, 28, 18, 17, 0, } },
	{"L", 4, {8, 8, 8, 8, 8, 15, 0, } },
	{"M", 5, {17, 27, 21, 21, 21, 17, 0, } },
	{"N", 5, {17, 29, 21, 21, 23, 17, 0, } },
	{"O", 6, {12, 18, 33, 33, 18, 12, 0, } },
	{"P", 4, {14, 9, 9, 14, 8, 8, 0, } },
	{"Q", 6, {12, 18, 33, 37, 18, 12, 3, } },
	{"R", 5, {28, 18, 18, 28, 18, 17, 0, } },
	{"S", 6, {30, 32, 30, 1, 1, 30, 0, } },
	{"T", 5, {31, 4, 4, 4, 4, 4, 0, } },
	{"U", 6, {33, 33, 33, 33, 18, 12, 0, } },
	{"V", 5, {17, 17, 10, 10, 4, 4, 0, } },
	{"W", 5, {17, 21, 21, 21, 27, 17, 0, } },
	{"X", 5, {17, 27, 4, 4, 27, 17, 0, } },
	{"Y", 5, {17, 27, 10, 14, 4, 4, 0, } },
	{"Z", 5, {31, 3, 2, 4, 12, 31, 0, } },
	{"1", 3, {2, 6, 2, 2, 2, 7, 0, } },
	{"2", 5, {14, 17, 2, 6, 8, 31, 0, } },
	{"3", 5, {14, 17, 7, 1, 18, 14, 0, } },
	{"4", 4, {3, 5, 9, 15, 1, 1, 0, } },
	{"5", 4, {15, 8, 14, 1, 1, 14, 0, } },
	{"6", 4, {3, 6, 14, 9, 9, 6, 0, } },
	{"7", 4, {15, 1, 3, 2, 6, 4, 0, } },
	{"8", 4, {6, 9, 6, 9, 9, 6, 0, } },
	{"9", 4, {6, 9, 9, 7, 1, 6, 0, } },
	{"0", 4, {6, 9, 9, 9, 9, 6, 0, } },
	{"(", 2, {1, 2, 2, 2, 2, 1, 0, } },
	{")", 2, {2, 1, 1, 1, 1, 2, 0, } },
	{"{", 3, {1, 2, 2, 6, 2, 1, 0, } },
	{"}", 3, {4, 2, 2, 3, 2, 4, 0, } },
	{"[", 2, {3, 2, 2, 2, 2, 3, 0, } },
	{"]", 2, {3, 1, 1, 1, 1, 3, 0, } },
	{"$", 3, {2, 7, 4, 7, 1, 7, 2, } },
	{"%", 4, {8, 1, 2, 4, 8, 1, 0, } },
	{"@", 5, {14, 17, 23, 21, 23, 16, 14, } },
	{"*", 3, {4, 7, 4, 5, 0, 0, 0, } },
	{"?", 4, {6, 9, 1, 3, 2, 0, 2, } },
	{"#", 5, {5, 14, 10, 14, 20, 0, 0, } },
	{"|", 1, {1, 1, 1, 1, 1, 1, 1, } },
	{"=", 3, {0, 0, 7, 0, 7, 0, 0, } },
	{"+", 6, {0, 8, 8, 63, 8, 8, 0, } },
	{"-", 6, {0, 0, 0, 63, 0, 0, 0, } },
	{"_", 6, {0, 0, 0, 0, 0, 63, 0, } },
	{"~", 4, {0, 0, 5, 10, 0, 0, 0, } },
	{"`", 2, {2, 1, 0, 0, 0, 0, 0, } },
	{"'", 1, {1, 1, 0, 0, 0, 0, 0, } },
	{"\"", 3, {5, 5, 0, 0, 0, 0, 0, } },
	{",", 2, {0, 0, 0, 0, 0, 1, 2, } },
	{".", 1, {0, 0, 0, 0, 0, 1, 0, } },
	{";", 2, {0, 0, 1, 0, 0, 1, 2, } },
	{":", 1, {0, 0, 1, 0, 0, 1, 0, } },
	{"<", 3, {0, 1, 2, 4, 2, 1, 0, } },
	{">", 3, {0, 4, 2, 1, 2, 4, 0, } },
	{"^", 5, {4, 10, 17, 0, 0, 0, 0, } },
	{"!", 1, {1, 1, 1, 1, 0, 1, 0, } },
	{"\\", 5, {16, 8, 4, 4, 2, 1, 0, } },
	{"/", 5, {1, 2, 4, 4, 8, 16, 0, } },
	{"&", 5, {14, 10, 14, 17, 18, 13, 0, } },
	{"copy", 6, {63, 33, 45, 41, 45, 33, 63, } },
	{"bullet", 5, {0, 4, 14, 31, 14, 4, 0, } },
	{"degree", 3, {2, 5, 2, 0, 0, 0, 0, } },
	};
const int NumOutlines07 = sizeof (Outlines07)/sizeof (Outlines07 [0] );
const int Height07
	= sizeof (Outlines07 [0].rows)/sizeof (Outlines07 [0].rows [0] );

int FindRows07 (const unsigned long int * * RowsPtr, int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines07) {
		j = i;
		while (j < NumOutlines07
				&& ((position > 0
				&& (strlen (Outlines07 [j].title)
						<= position
				|| memcmp (Outlines07 [i].title,
				Outlines07 [j].title, position) != 0) )
				|| Outlines07 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines07) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines07 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height07);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines07) {
		j = i;
		while (j < NumOutlines07
				&& ((position > 0
				&& (strlen (Outlines07 [j].title)
						< position
				|| memcmp (Outlines07 [i].title,
				Outlines07 [j].title, position) != 0) )
				|| Outlines07 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines07) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines07 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height07);
			}
		i = j;
		}
	if (i < NumOutlines07) {
		WidthPtr [0] = Outlines07 [i].width;
		RowsPtr [0] = Outlines07 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [12];
	} Outlines12 [] = {
	{"a", 5, {0, 0, 0, 0, 14, 1, 15, 17, 17, 15, 0, 0, } },
	{"b", 5, {0, 16, 16, 16, 30, 17, 17, 17, 17, 30, 0, 0, } },
	{"c", 5, {0, 0, 0, 0, 14, 17, 16, 16, 17, 14, 0, 0, } },
	{"d", 5, {0, 1, 1, 1, 15, 17, 17, 17, 17, 15, 0, 0, } },
	{"e", 5, {0, 0, 0, 0, 14, 17, 31, 16, 17, 14, 0, 0, } },
	{"f", 3, {0, 3, 4, 4, 7, 4, 4, 4, 4, 4, 0, 0, } },
	{"g", 5, {0, 0, 0, 0, 15, 17, 17, 17, 17, 15, 1, 30, } },
	{"h", 5, {0, 16, 16, 16, 22, 25, 17, 17, 17, 17, 0, 0, } },
	{"i", 3, {0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, } },
	{"j", 3, {0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 7, } },
	{"k", 5, {0, 16, 16, 16, 18, 20, 24, 20, 18, 17, 0, 0, } },
	{"l", 3, {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, } },
	{"m", 7, {0, 0, 0, 0, 118, 73, 73, 73, 73, 73, 0, 0, } },
	{"n", 5, {0, 0, 0, 0, 22, 25, 17, 17, 17, 17, 0, 0, } },
	{"o", 5, {0, 0, 0, 0, 14, 17, 17, 17, 17, 14, 0, 0, } },
	{"p", 5, {0, 0, 0, 0, 30, 17, 17, 17, 17, 30, 16, 16, } },
	{"q", 5, {0, 0, 0, 0, 15, 17, 17, 17, 17, 15, 1, 1, } },
	{"r", 4, {0, 0, 0, 0, 14, 9, 8, 8, 8, 8, 0, 0, } },
	{"s", 4, {0, 0, 0, 0, 6, 9, 4, 2, 9, 6, 0, 0, } },
	{"t", 4, {0, 0, 4, 4, 15, 4, 4, 4, 4, 3, 0, 0, } },
	{"u", 5, {0, 0, 0, 0, 17, 17, 17, 17, 19, 13, 0, 0, } },
	{"v", 5, {0, 0, 0, 0, 17, 17, 10, 10, 4, 4, 0, 0, } },
	{"w", 7, {0, 0, 0, 0, 73, 73, 85, 85, 34, 34, 0, 0, } },
	{"x", 4, {0, 0, 0, 0, 9, 9, 6, 6, 9, 9, 0, 0, } },
	{"y", 5, {0, 0, 0, 0, 9, 9, 9, 9, 6, 4, 4, 24, } },
	{"z", 4, {0, 0, 0, 0, 15, 1, 2, 4, 8, 15, 0, 0, } },
	{"A", 7, {0, 8, 8, 20, 20, 34, 34, 62, 65, 65, 0, 0, } },
	{"B", 5, {0, 30, 17, 17, 17, 30, 17, 17, 17, 30, 0, 0, } },
	{"C", 6, {0, 30, 33, 32, 32, 32, 32, 32, 33, 30, 0, 0, } },
	{"D", 6, {0, 60, 34, 33, 33, 33, 33, 33, 34, 60, 0, 0, } },
	{"E", 5, {0, 31, 16, 16, 16, 30, 16, 16, 16, 31, 0, 0, } },
	{"F", 5, {0, 31, 16, 16, 16, 30, 16, 16, 16, 16, 0, 0, } },
	{"G", 6, {0, 30, 33, 32, 32, 39, 33, 33, 35, 29, 0, 0, } },
	{"H", 6, {0, 33, 33, 33, 33, 63, 33, 33, 33, 33, 0, 0, } },
	{"I", 3, {0, 7, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, } },
	{"J", 4, {0, 1, 1, 1, 1, 1, 1, 9, 9, 14, 0, 0, } },
	{"K", 6, {0, 34, 36, 40, 48, 48, 40, 36, 34, 33, 0, 0, } },
	{"L", 5, {0, 16, 16, 16, 16, 16, 16, 16, 16, 31, 0, 0, } },
	{"M", 7, {0, 65, 65, 99, 99, 85, 85, 73, 73, 65, 0, 0, } },
	{"N", 6, {0, 33, 49, 49, 41, 41, 37, 35, 35, 33, 0, 0, } },
	{"O", 6, {0, 30, 33, 33, 33, 33, 33, 33, 33, 30, 0, 0, } },
	{"P", 6, {0, 62, 33, 33, 33, 62, 32, 32, 32, 32, 0, 0, } },
	{"Q", 6, {0, 30, 33, 33, 33, 33, 33, 37, 35, 30, 1, 0, } },
	{"R", 6, {0, 62, 33, 33, 33, 62, 33, 33, 33, 33, 0, 0, } },
	{"S", 5, {0, 14, 17, 16, 16, 14, 1, 1, 17, 14, 0, 0, } },
	{"T", 5, {0, 31, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, } },
	{"U", 6, {0, 33, 33, 33, 33, 33, 33, 33, 33, 30, 0, 0, } },
	{"V", 7, {0, 65, 65, 34, 34, 34, 20, 20, 8, 8, 0, 0, } },
	{"W", 11, {0, 1025, 1025, 546, 546, 546, 340, 340, 136, 136, 0, 0, } },
	{"X", 7, {0, 65, 65, 34, 20, 8, 20, 34, 65, 65, 0, 0, } },
	{"Y", 7, {0, 65, 65, 34, 20, 8, 8, 8, 8, 8, 0, 0, } },
	{"Z", 7, {0, 127, 1, 2, 4, 8, 16, 32, 64, 127, 0, 0, } },
	{"1", 3, {0, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, } },
	{"2", 5, {0, 14, 17, 1, 1, 2, 4, 8, 16, 31, 0, 0, } },
	{"3", 5, {0, 14, 17, 1, 1, 6, 1, 1, 17, 14, 0, 0, } },
	{"4", 5, {0, 2, 6, 6, 10, 10, 18, 31, 2, 2, 0, 0, } },
	{"5", 5, {0, 31, 16, 16, 30, 17, 1, 1, 17, 14, 0, 0, } },
	{"6", 5, {0, 14, 17, 16, 16, 30, 17, 17, 17, 14, 0, 0, } },
	{"7", 5, {0, 31, 1, 2, 2, 4, 4, 8, 8, 8, 0, 0, } },
	{"8", 5, {0, 14, 17, 17, 17, 14, 17, 17, 17, 14, 0, 0, } },
	{"9", 5, {0, 14, 17, 17, 17, 15, 1, 1, 17, 14, 0, 0, } },
	{"0", 5, {0, 14, 17, 17, 17, 17, 17, 17, 17, 14, 0, 0, } },
	{"(", 3, {0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, } },
	{")", 3, {0, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, } },
	{"{", 3, {1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 1, 0, } },
	{"}", 3, {4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 4, 0, } },
	{"[", 3, {0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, } },
	{"]", 3, {0, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, } },
	{"$", 5, {0, 4, 14, 21, 20, 12, 6, 5, 21, 14, 4, 0, } },
	{"%", 7, {0, 48, 73, 50, 4, 8, 16, 38, 73, 6, 0, 0, } },
	{"&", 5, {0, 8, 20, 20, 8, 8, 21, 18, 18, 13, 0, 0, } },
	{"@", 10, {0, 120, 390, 258, 569, 633, 633, 567, 256, 384, 124, 0, } },
	{"*", 3, {0, 0, 5, 2, 5, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 5, {0, 14, 17, 1, 1, 2, 4, 4, 0, 4, 0, 0, } },
	{"#", 6, {0, 18, 18, 63, 18, 18, 18, 63, 18, 18, 0, 0, } },
	{"|", 3, {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, } },
	{"=", 5, {0, 0, 0, 0, 0, 31, 0, 31, 0, 0, 0, 0, } },
	{"+", 5, {0, 0, 0, 0, 4, 4, 31, 4, 4, 0, 0, 0, } },
	{"-", 3, {0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, } },
	{"_", 6, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, } },
	{"~", 6, {0, 0, 25, 38, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"`", 3, {0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 3, {0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 6, {0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, } },
	{".", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, } },
	{";", 3, {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, } },
	{":", 3, {0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, } },
	{"<", 4, {0, 0, 0, 1, 2, 4, 8, 4, 2, 1, 0, 0, } },
	{">", 4, {0, 0, 0, 8, 4, 2, 1, 2, 4, 8, 0, 0, } },
	{"^", 5, {4, 10, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"!", 3, {0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, } },
	{"\\", 4, {0, 8, 8, 8, 4, 4, 2, 2, 1, 1, 0, 0, } },
	{"/", 4, {0, 1, 1, 1, 2, 2, 4, 4, 8, 8, 0, 0, } },
	{"bullet", 4, {0, 0, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, } },
	{"copy", 7, {0, 0, 28, 34, 77, 81, 81, 77, 34, 28, 0, 0, } },
	{"degree", 4, {6, 9, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines12 = sizeof (Outlines12)/sizeof (Outlines12 [0] );
const int Height12
	= sizeof (Outlines12 [0].rows)/sizeof (Outlines12 [0].rows [0] );

int FindRows12 (const unsigned long int * * RowsPtr, int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines12) {
		j = i;
		while (j < NumOutlines12
				&& ((position > 0
				&& (strlen (Outlines12 [j].title)
						<= position
				|| memcmp (Outlines12 [i].title,
				Outlines12 [j].title, position) != 0) )
				|| Outlines12 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines12) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines12 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height12);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines12) {
		j = i;
		while (j < NumOutlines12
				&& ((position > 0
				&& (strlen (Outlines12 [j].title)
						< position
				|| memcmp (Outlines12 [i].title,
				Outlines12 [j].title, position) != 0) )
				|| Outlines12 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines12) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines12 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height12);
			}
		i = j;
		}
	if (i < NumOutlines12) {
		WidthPtr [0] = Outlines12 [i].width;
		RowsPtr [0] = Outlines12 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [18];
	} Outlines18 [] = {
	{"a", 9, {0, 0, 0, 0, 124, 130, 2, 2, 126, 130, 258, 262, 249, 0, 0, 0, 0, 0, } },
	{"b", 10, {768, 256, 256, 256, 316, 322, 385, 257, 257, 257, 385, 322, 828, 0, 0, 0, 0, 0, } },
	{"c", 9, {0, 0, 0, 0, 125, 131, 257, 256, 256, 256, 257, 130, 124, 0, 0, 0, 0, 0, } },
	{"d", 10, {6, 2, 2, 2, 242, 270, 514, 514, 514, 514, 514, 270, 243, 0, 0, 0, 0, 0, } },
	{"e", 8, {0, 0, 0, 0, 60, 66, 129, 129, 255, 128, 128, 65, 62, 0, 0, 0, 0, 0, } },
	{"f", 9, {63, 64, 64, 64, 508, 64, 64, 64, 64, 64, 64, 64, 508, 0, 0, 0, 0, 0, } },
	{"g", 8, {0, 0, 0, 0, 59, 70, 130, 130, 130, 130, 130, 70, 58, 2, 2, 4, 120, 0, } },
	{"h", 9, {384, 128, 128, 128, 184, 196, 130, 130, 130, 130, 130, 130, 455, 0, 0, 0, 0, 0, } },
	{"i", 9, {16, 16, 0, 0, 240, 16, 16, 16, 16, 16, 16, 16, 511, 0, 0, 0, 0, 0, } },
	{"j", 6, {2, 2, 0, 0, 63, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 62, 0, } },
	{"k", 9, {384, 128, 128, 128, 143, 132, 152, 160, 224, 144, 136, 132, 399, 0, 0, 0, 0, 0, } },
	{"l", 9, {240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 511, 0, 0, 0, 0, 0, } },
	{"m", 11, {0, 0, 0, 0, 1740, 818, 546, 546, 546, 546, 546, 546, 1843, 0, 0, 0, 0, 0, } },
	{"n", 9, {0, 0, 0, 0, 440, 196, 130, 130, 130, 130, 130, 130, 455, 0, 0, 0, 0, 0, } },
	{"o", 9, {0, 0, 0, 0, 124, 130, 257, 257, 257, 257, 257, 130, 124, 0, 0, 0, 0, 0, } },
	{"p", 10, {0, 0, 0, 0, 828, 322, 385, 257, 257, 257, 385, 322, 316, 256, 256, 256, 896, 0, } },
	{"q", 10, {0, 0, 0, 0, 243, 266, 518, 514, 514, 514, 514, 270, 242, 2, 2, 2, 7, 0, } },
	{"r", 8, {0, 0, 0, 0, 206, 81, 96, 64, 64, 64, 64, 64, 252, 0, 0, 0, 0, 0, } },
	{"s", 8, {0, 0, 0, 0, 125, 131, 129, 124, 2, 1, 129, 194, 188, 0, 0, 0, 0, 0, } },
	{"t", 9, {0, 64, 64, 64, 510, 64, 64, 64, 64, 64, 64, 67, 60, 0, 0, 0, 0, 0, } },
	{"u", 10, {0, 0, 0, 0, 774, 258, 258, 258, 258, 258, 258, 262, 251, 0, 0, 0, 0, 0, } },
	{"v", 12, {0, 0, 0, 0, 3855, 516, 264, 264, 264, 144, 144, 96, 96, 0, 0, 0, 0, 0, } },
	{"w", 12, {0, 0, 0, 0, 3599, 1028, 1092, 1092, 584, 680, 680, 680, 272, 0, 0, 0, 0, 0, } },
	{"x", 10, {0, 0, 0, 0, 975, 258, 132, 72, 48, 72, 132, 258, 975, 0, 0, 0, 0, 0, } },
	{"y", 12, {0, 0, 0, 0, 3855, 516, 520, 264, 264, 144, 144, 96, 96, 64, 64, 128, 1984, 0, } },
	{"z", 8, {0, 0, 0, 0, 255, 130, 4, 8, 16, 32, 64, 129, 255, 0, 0, 0, 0, 0, } },
	{"A", 12, {0, 992, 96, 144, 144, 144, 264, 264, 1020, 516, 516, 1026, 3855, 0, 0, 0, 0, 0, } },
	{"B", 10, {0, 1020, 130, 130, 130, 132, 252, 130, 129, 129, 129, 130, 1020, 0, 0, 0, 0, 0, } },
	{"C", 10, {0, 121, 135, 257, 512, 512, 512, 512, 512, 512, 257, 130, 124, 0, 0, 0, 0, 0, } },
	{"D", 9, {0, 508, 130, 130, 129, 129, 129, 129, 129, 129, 130, 130, 508, 0, 0, 0, 0, 0, } },
	{"E", 10, {0, 1023, 129, 129, 136, 136, 248, 136, 136, 129, 129, 129, 1023, 0, 0, 0, 0, 0, } },
	{"F", 10, {0, 1023, 129, 129, 136, 136, 248, 136, 136, 128, 128, 128, 1008, 0, 0, 0, 0, 0, } },
	{"G", 10, {0, 122, 134, 258, 512, 512, 512, 543, 514, 514, 258, 130, 124, 0, 0, 0, 0, 0, } },
	{"H", 12, {0, 3999, 516, 516, 516, 516, 1020, 516, 516, 516, 516, 516, 3999, 0, 0, 0, 0, 0, } },
	{"I", 7, {0, 127, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 127, 0, 0, 0, 0, 0, } },
	{"J", 9, {0, 127, 4, 4, 4, 4, 4, 260, 260, 260, 260, 136, 112, 0, 0, 0, 0, 0, } },
	{"K", 11, {0, 1951, 260, 264, 272, 288, 320, 480, 272, 264, 264, 260, 1927, 0, 0, 0, 0, 0, } },
	{"L", 9, {0, 496, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 511, 0, 0, 0, 0, 0, } },
	{"M", 11, {0, 1799, 774, 650, 650, 650, 594, 594, 546, 514, 514, 514, 1799, 0, 0, 0, 0, 0, } },
	{"N", 11, {0, 1927, 386, 322, 322, 290, 290, 274, 274, 266, 266, 262, 902, 0, 0, 0, 0, 0, } },
	{"O", 10, {0, 120, 132, 258, 513, 513, 513, 513, 513, 513, 258, 132, 120, 0, 0, 0, 0, 0, } },
	{"P", 9, {0, 508, 66, 65, 65, 65, 66, 124, 64, 64, 64, 64, 504, 0, 0, 0, 0, 0, } },
	{"Q", 10, {0, 120, 132, 258, 513, 513, 513, 513, 513, 513, 258, 132, 120, 32, 121, 198, 0, 0, } },
	{"R", 11, {0, 2032, 264, 260, 260, 260, 264, 496, 264, 260, 260, 258, 1923, 0, 0, 0, 0, 0, } },
	{"S", 8, {0, 61, 67, 129, 128, 192, 60, 2, 1, 1, 129, 194, 188, 0, 0, 0, 0, 0, } },
	{"T", 9, {0, 511, 273, 273, 273, 16, 16, 16, 16, 16, 16, 16, 124, 0, 0, 0, 0, 0, } },
	{"U", 10, {0, 903, 258, 258, 258, 258, 258, 258, 258, 258, 258, 132, 120, 0, 0, 0, 0, 0, } },
	{"V", 12, {0, 3855, 516, 516, 264, 264, 264, 144, 144, 144, 96, 96, 96, 0, 0, 0, 0, 0, } },
	{"W", 12, {0, 3871, 1028, 1028, 1092, 1092, 584, 680, 680, 680, 680, 680, 272, 0, 0, 0, 0, 0, } },
	{"X", 11, {0, 1935, 260, 136, 136, 80, 32, 80, 136, 132, 260, 514, 1935, 0, 0, 0, 0, 0, } },
	{"Y", 11, {0, 1935, 514, 260, 136, 80, 80, 32, 32, 32, 32, 32, 240, 0, 0, 0, 0, 0, } },
	{"Z", 8, {0, 255, 129, 130, 132, 4, 8, 16, 32, 33, 65, 129, 255, 0, 0, 0, 0, 0, } },
	{"(", 3, {1, 1, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 1, 1, 0, 0, } },
	{")", 3, {4, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 0, 0, } },
	{"{", 5, {0, 3, 4, 4, 4, 4, 4, 4, 24, 4, 4, 4, 4, 4, 4, 3, 0, 0, } },
	{"}", 5, {0, 24, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 24, 0, 0, } },
	{"[", 4, {15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 15, 0, 0, } },
	{"]", 4, {15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 0, 0, } },
	{"$", 7, {8, 31, 33, 64, 64, 64, 60, 3, 1, 65, 67, 126, 8, 8, 8, 0, 0, 0, } },
	{"%", 7, {56, 68, 68, 68, 56, 3, 28, 96, 14, 17, 17, 17, 14, 0, 0, 0, 0, 0, } },
	{"&", 8, {0, 0, 60, 64, 64, 64, 32, 81, 148, 140, 132, 204, 115, 0, 0, 0, 0, 0, } },
	{"@", 8, {60, 98, 129, 129, 135, 137, 145, 145, 145, 143, 128, 128, 130, 60, 0, 0, 0, 0, } },
	{"*", 7, {8, 8, 8, 127, 8, 12, 20, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 7, {0, 60, 66, 65, 1, 1, 6, 8, 8, 0, 0, 28, 28, 0, 0, 0, 0, 0, } },
	{"#", 8, {18, 18, 18, 36, 36, 255, 36, 36, 255, 36, 36, 72, 72, 72, 0, 0, 0, 0, } },
	{"|", 1, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, } },
	{"=", 10, {0, 0, 0, 0, 0, 1023, 0, 0, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 9, {0, 0, 8, 8, 8, 8, 8, 511, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, } },
	{"-", 8, {0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4095, } },
	{"~", 8, {0, 0, 0, 0, 0, 0, 96, 153, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"`", 3, {4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 3, {7, 7, 7, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 8, {231, 231, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 6, 12, 12, 8, 0, 0, } },
	{".", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, } },
	{";", 4, {0, 0, 0, 0, 7, 7, 7, 0, 0, 7, 6, 12, 12, 8, 0, 0, 0, 0, } },
	{":", 3, {0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, } },
	{"<", 9, {0, 0, 1, 2, 12, 48, 64, 384, 64, 48, 12, 2, 1, 0, 0, 0, 0, 0, } },
	{">", 9, {0, 0, 256, 128, 96, 24, 4, 3, 4, 24, 96, 128, 256, 0, 0, 0, 0, 0, } },
	{"^", 8, {0, 24, 36, 36, 66, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"!", 3, {2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, } },
	{"\\", 8, {128, 64, 64, 64, 32, 32, 16, 16, 8, 8, 4, 4, 2, 2, 1, 0, 0, 0, } },
	{"/", 8, {1, 2, 2, 4, 4, 8, 8, 16, 16, 32, 32, 64, 64, 128, 128, 0, 0, 0, } },
	{"0", 8, {60, 66, 66, 129, 129, 129, 129, 129, 129, 129, 130, 66, 60, 0, 0, 0, 0, 0, } },
	{"1", 8, {24, 232, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 127, 0, 0, 0, 0, 0, } },
	{"2", 8, {60, 66, 129, 1, 1, 2, 4, 8, 16, 32, 64, 129, 255, 0, 0, 0, 0, 0, } },
	{"3", 8, {60, 194, 1, 1, 2, 28, 2, 1, 1, 1, 1, 130, 124, 0, 0, 0, 0, 0, } },
	{"4", 7, {2, 6, 6, 10, 18, 18, 34, 34, 66, 127, 2, 2, 15, 0, 0, 0, 0, 0, } },
	{"5", 8, {126, 64, 64, 64, 64, 92, 98, 1, 1, 1, 129, 66, 60, 0, 0, 0, 0, 0, } },
	{"6", 9, {15, 48, 64, 128, 256, 316, 322, 385, 257, 257, 129, 66, 60, 0, 0, 0, 0, 0, } },
	{"7", 8, {255, 129, 1, 2, 2, 2, 4, 4, 4, 8, 8, 8, 8, 0, 0, 0, 0, 0, } },
	{"8", 7, {28, 34, 65, 65, 65, 34, 30, 34, 65, 65, 65, 34, 28, 0, 0, 0, 0, 0, } },
	{"9", 8, {56, 70, 130, 129, 129, 129, 67, 61, 1, 2, 2, 4, 248, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines18 = sizeof (Outlines18)/sizeof (Outlines18 [0] );
const int Height18
	= sizeof (Outlines18 [0].rows)/sizeof (Outlines18 [0].rows [0] );

int FindRows18 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines18) {
		j = i;
		while (j < NumOutlines18
				&& ((position > 0
				&& (strlen (Outlines18 [j].title)
						<= position
				|| memcmp (Outlines18 [i].title,
				Outlines18 [j].title, position) != 0) )
				|| Outlines18 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines18) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines18 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height18);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines18) {
		j = i;
		while (j < NumOutlines18
				&& ((position > 0
				&& (strlen (Outlines18 [j].title)
						< position
				|| memcmp (Outlines18 [i].title,
				Outlines18 [j].title, position) != 0) )
				|| Outlines18 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines18) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines18 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height18);
			}
		i = j;
		}
	if (i < NumOutlines18) {
		WidthPtr [0] = Outlines18 [i].width;
		RowsPtr [0] = Outlines18 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [22];
	} Outlines22 [] = {
	{"!", 3, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 5, {27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"#", 6, {0, 0, 0, 0, 18, 18, 18, 63, 63, 18, 18, 63, 63, 18, 18, 0, 0, 0, 0, 0, 0, 0, } },
	{"$", 6, {12, 12, 12, 30, 63, 62, 60, 60, 30, 15, 15, 15, 63, 63, 30, 12, 12, 12, 0, 0, 0, 0, } },
	{"%", 7, {49, 123, 123, 127, 118, 14, 12, 28, 24, 24, 54, 63, 111, 111, 102, 0, 0, 0, 0, 0, 0, 0, } },
	{"&", 7, {24, 28, 60, 60, 28, 60, 56, 120, 124, 108, 111, 103, 103, 62, 30, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 3, {3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"(", 3, {0, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{")", 4, {0, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, } },
	{"*", 5, {17, 27, 31, 31, 31, 14, 27, 27, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 5, {0, 0, 0, 0, 4, 4, 4, 31, 31, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 2, 0, 0, 0, } },
	{"-", 5, {0, 0, 0, 0, 0, 0, 0, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{".", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"/", 5, {1, 3, 3, 3, 7, 6, 6, 6, 12, 12, 12, 24, 24, 24, 16, 0, 0, 0, 0, 0, 0, 0, } },
	{"0", 8, {24, 60, 102, 102, 195, 195, 195, 219, 195, 195, 195, 102, 102, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"1", 5, {6, 14, 14, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 15, 15, 0, 0, 0, 0, 0, 0, 0, } },
	{"2", 8, {60, 126, 231, 195, 3, 3, 3, 3, 6, 6, 14, 12, 24, 255, 255, 0, 0, 0, 0, 0, 0, 0, } },
	{"3", 8, {60, 126, 231, 195, 3, 3, 6, 30, 30, 3, 3, 195, 195, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"4", 8, {12, 28, 60, 108, 204, 204, 255, 255, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, } },
	{"5", 8, {255, 255, 192, 192, 192, 240, 124, 14, 7, 3, 3, 3, 6, 124, 248, 0, 0, 0, 0, 0, 0, 0, } },
	{"6", 8, {7, 31, 56, 112, 96, 192, 192, 252, 254, 195, 195, 195, 195, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"7", 8, {255, 255, 3, 6, 6, 12, 28, 24, 56, 48, 112, 96, 224, 192, 192, 0, 0, 0, 0, 0, 0, 0, } },
	{"8", 8, {60, 126, 231, 195, 195, 195, 102, 126, 126, 195, 195, 195, 195, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"9", 8, {60, 126, 231, 195, 195, 195, 231, 127, 27, 3, 7, 6, 28, 248, 240, 0, 0, 0, 0, 0, 0, 0, } },
	{":", 3, {0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{";", 3, {0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 2, 0, 0, 0, } },
	{"<", 5, {3, 3, 7, 6, 12, 28, 24, 16, 24, 24, 12, 14, 6, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"=", 5, {0, 0, 0, 0, 0, 0, 31, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{">", 5, {0, 0, 24, 28, 12, 6, 3, 3, 3, 7, 14, 28, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 6, {12, 30, 51, 51, 3, 3, 7, 6, 4, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, } },
	{"@", 7, {0, 0, 0, 0, 0, 0, 0, 62, 65, 79, 73, 73, 79, 96, 63, 0, 0, 0, 0, 0, 0, 0, } },
	{"A", 8, {24, 60, 60, 60, 126, 102, 102, 231, 255, 255, 195, 195, 195, 195, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"B", 8, {248, 254, 198, 195, 195, 195, 206, 252, 254, 199, 195, 195, 199, 254, 252, 0, 0, 0, 0, 0, 0, 0, } },
	{"C", 7, {14, 31, 51, 115, 96, 96, 96, 96, 96, 96, 96, 115, 115, 63, 30, 0, 0, 0, 0, 0, 0, 0, } },
	{"D", 8, {240, 248, 220, 206, 198, 195, 195, 195, 195, 195, 199, 198, 206, 252, 240, 0, 0, 0, 0, 0, 0, 0, } },
	{"E", 8, {255, 255, 192, 192, 192, 192, 252, 252, 192, 192, 192, 192, 192, 255, 255, 0, 0, 0, 0, 0, 0, 0, } },
	{"F", 8, {255, 255, 192, 192, 192, 192, 252, 252, 192, 192, 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, } },
	{"G", 8, {24, 62, 103, 227, 192, 192, 192, 192, 206, 207, 195, 195, 231, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"H", 8, {195, 195, 195, 195, 195, 195, 255, 255, 195, 195, 195, 195, 195, 195, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"I", 4, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"J", 6, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 51, 51, 63, 31, 0, 0, 0, 0, 0, 0, 0, } },
	{"K", 8, {195, 199, 206, 220, 248, 240, 224, 192, 224, 240, 248, 220, 206, 199, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"L", 8, {192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 255, 255, 0, 0, 0, 0, 0, 0, 0, } },
	{"M", 10, {771, 771, 771, 903, 903, 975, 975, 1023, 891, 891, 819, 771, 771, 771, 771, 0, 0, 0, 0, 0, 0, 0, } },
	{"N", 8, {195, 195, 195, 227, 227, 243, 251, 219, 223, 207, 207, 199, 199, 195, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"O", 8, {24, 60, 102, 102, 195, 195, 195, 195, 195, 195, 195, 102, 102, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"P", 8, {248, 254, 199, 195, 195, 206, 252, 240, 192, 192, 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, } },
	{"Q", 8, {60, 126, 230, 195, 195, 195, 195, 195, 195, 195, 195, 195, 103, 126, 62, 6, 6, 6, 0, 0, 0, 0, } },
	{"R", 8, {248, 254, 199, 195, 195, 206, 252, 240, 240, 216, 220, 206, 198, 199, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"S", 8, {60, 126, 231, 195, 192, 192, 96, 124, 30, 3, 3, 195, 227, 126, 60, 0, 0, 0, 0, 0, 0, 0, } },
	{"T", 8, {255, 255, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, } },
	{"U", 8, {195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 255, 126, 0, 0, 0, 0, 0, 0, 0, } },
	{"V", 8, {195, 195, 195, 195, 195, 195, 102, 102, 102, 126, 60, 60, 60, 60, 24, 0, 0, 0, 0, 0, 0, 0, } },
	{"W", 10, {771, 771, 771, 771, 771, 771, 771, 819, 819, 891, 891, 1023, 462, 462, 390, 0, 0, 0, 0, 0, 0, 0, } },
	{"X", 8, {195, 195, 195, 102, 102, 60, 60, 24, 60, 60, 102, 102, 195, 195, 195, 0, 0, 0, 0, 0, 0, 0, } },
	{"Y", 8, {195, 195, 231, 102, 126, 60, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, } },
	{"Z", 8, {255, 255, 3, 6, 6, 12, 28, 24, 56, 48, 112, 96, 224, 255, 255, 0, 0, 0, 0, 0, 0, 0, } },
	{"[", 4, {7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, } },
	{"\\", 5, {16, 24, 24, 24, 28, 12, 12, 12, 6, 6, 6, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, } },
	{"]", 4, {7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, } },
	{"^", 5, {14, 14, 31, 27, 27, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 0, 0, 0, 0, 0, } },
	{"`", 4, {2, 2, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"a", 6, {0, 0, 0, 0, 0, 0, 0, 15, 15, 3, 31, 63, 51, 63, 31, 0, 0, 0, 0, 0, 0, 0, } },
	{"b", 6, {48, 48, 48, 48, 48, 48, 48, 62, 63, 51, 51, 51, 51, 63, 62, 0, 0, 0, 0, 0, 0, 0, } },
	{"c", 6, {0, 0, 0, 0, 0, 0, 0, 30, 63, 51, 48, 48, 51, 63, 30, 0, 0, 0, 0, 0, 0, 0, } },
	{"d", 6, {3, 3, 3, 3, 3, 3, 3, 31, 63, 51, 51, 51, 51, 63, 31, 0, 0, 0, 0, 0, 0, 0, } },
	{"e", 6, {0, 0, 0, 0, 0, 0, 0, 30, 63, 51, 63, 63, 48, 62, 30, 0, 0, 0, 0, 0, 0, 0, } },
	{"f", 6, {30, 63, 51, 48, 48, 48, 48, 62, 62, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, } },
	{"g", 6, {0, 0, 0, 0, 0, 0, 0, 31, 63, 51, 51, 51, 51, 63, 31, 3, 3, 3, 3, 51, 63, 30, } },
	{"h", 6, {48, 48, 48, 48, 48, 48, 48, 62, 63, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, } },
	{"i", 3, {0, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"j", 6, {0, 0, 6, 15, 6, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 38, 62, 28, } },
	{"k", 6, {48, 48, 48, 48, 48, 48, 48, 51, 55, 62, 56, 56, 62, 55, 51, 0, 0, 0, 0, 0, 0, 0, } },
	{"l", 3, {7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"m", 8, {0, 0, 0, 0, 0, 0, 0, 255, 255, 219, 219, 219, 219, 219, 219, 0, 0, 0, 0, 0, 0, 0, } },
	{"n", 6, {0, 0, 0, 0, 0, 0, 0, 62, 63, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, } },
	{"o", 6, {0, 0, 0, 0, 0, 0, 0, 30, 63, 51, 51, 51, 51, 63, 30, 0, 0, 0, 0, 0, 0, 0, } },
	{"p", 6, {0, 0, 0, 0, 0, 0, 0, 62, 63, 51, 51, 51, 51, 63, 62, 48, 48, 48, 48, 48, 48, 48, } },
	{"q", 6, {0, 0, 0, 0, 0, 0, 0, 31, 63, 51, 51, 51, 51, 63, 31, 3, 3, 3, 3, 3, 3, 3, } },
	{"r", 6, {0, 0, 0, 0, 0, 0, 0, 62, 63, 51, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, } },
	{"s", 6, {0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 62, 31, 3, 63, 62, 0, 0, 0, 0, 0, 0, 0, } },
	{"t", 6, {0, 0, 0, 0, 24, 24, 24, 62, 62, 24, 24, 24, 24, 30, 15, 0, 0, 0, 0, 0, 0, 0, } },
	{"u", 6, {0, 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 63, 31, 0, 0, 0, 0, 0, 0, 0, } },
	{"v", 6, {0, 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, 30, 30, 30, 12, 0, 0, 0, 0, 0, 0, 0, } },
	{"w", 8, {0, 0, 0, 0, 0, 0, 0, 219, 219, 219, 255, 255, 231, 102, 102, 0, 0, 0, 0, 0, 0, 0, } },
	{"x", 6, {0, 0, 0, 0, 0, 0, 0, 51, 51, 31, 12, 12, 30, 51, 51, 0, 0, 0, 0, 0, 0, 0, } },
	{"y", 6, {0, 0, 0, 0, 0, 0, 0, 51, 51, 51, 27, 27, 15, 14, 6, 6, 6, 12, 12, 12, 56, 48, } },
	{"z", 6, {0, 0, 0, 0, 0, 0, 0, 63, 63, 6, 14, 28, 24, 63, 63, 0, 0, 0, 0, 0, 0, 0, } },
	{"{", 4, {3, 3, 7, 6, 6, 4, 4, 4, 4, 4, 6, 6, 6, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"|", 3, {3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, } },
	{"}", 4, {6, 6, 7, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, } },
	{"~", 6, {0, 0, 0, 0, 24, 60, 60, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines22 = sizeof (Outlines22)/sizeof (Outlines22 [0] );
const int Height22
	= sizeof (Outlines22 [0].rows)/sizeof (Outlines22 [0].rows [0] );

int FindRows22 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines22) {
		j = i;
		while (j < NumOutlines22
				&& ((position > 0
				&& (strlen (Outlines22 [j].title)
						<= position
				|| memcmp (Outlines22 [i].title,
				Outlines22 [j].title, position) != 0) )
				|| Outlines22 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines22) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines22 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height22);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines22) {
		j = i;
		while (j < NumOutlines22
				&& ((position > 0
				&& (strlen (Outlines22 [j].title)
						< position
				|| memcmp (Outlines22 [i].title,
				Outlines22 [j].title, position) != 0) )
				|| Outlines22 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines22) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines22 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height22);
			}
		i = j;
		}
	if (i < NumOutlines22) {
		WidthPtr [0] = Outlines22 [i].width;
		RowsPtr [0] = Outlines22 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [28];
	} Outlines28 [] = {
	{"!", 4, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 5, {27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"#", 7, {0, 0, 0, 0, 0, 0, 50, 50, 50, 127, 127, 127, 54, 127, 127, 127, 38, 38, 38, 36, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"$", 7, {28, 28, 28, 28, 62, 127, 127, 124, 124, 124, 60, 62, 31, 31, 31, 63, 127, 62, 62, 28, 28, 28, 0, 0, 0, 0, 0, 0, } },
	{"%", 8, {99, 243, 243, 247, 246, 254, 110, 12, 28, 24, 56, 56, 48, 126, 111, 239, 239, 207, 206, 132, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"&", 8, {24, 56, 60, 60, 44, 60, 60, 120, 120, 248, 248, 220, 220, 207, 239, 239, 102, 126, 62, 26, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 4, {7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"(", 5, {3, 7, 14, 12, 28, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 12, 14, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{")", 5, {24, 28, 14, 6, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 6, 14, 28, 24, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"*", 6, {51, 51, 63, 30, 63, 63, 63, 30, 63, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 6, {0, 0, 0, 0, 0, 0, 12, 12, 12, 63, 63, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 3, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, } },
	{"-", 6, {0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{".", 4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"/", 6, {1, 3, 3, 3, 7, 7, 6, 14, 14, 12, 12, 28, 24, 24, 56, 56, 48, 48, 48, 32, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"0", 10, {120, 252, 204, 462, 903, 771, 771, 771, 819, 819, 819, 771, 771, 771, 771, 903, 462, 204, 252, 120, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"1", 6, {6, 14, 14, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"2", 10, {120, 508, 910, 775, 771, 3, 3, 3, 3, 3, 3, 3, 7, 14, 28, 56, 112, 224, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"3", 10, {120, 252, 462, 903, 903, 3, 7, 7, 14, 60, 62, 14, 7, 3, 771, 903, 390, 510, 252, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"4", 10, {12, 28, 28, 60, 124, 236, 236, 460, 1023, 1023, 1023, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"5", 10, {1023, 1023, 768, 768, 768, 768, 768, 1016, 1020, 14, 7, 3, 3, 3, 3, 7, 14, 796, 1016, 1008, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"6", 10, {7, 31, 126, 240, 448, 448, 896, 896, 816, 1020, 1022, 902, 903, 771, 771, 903, 390, 510, 252, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"7", 10, {1023, 1023, 7, 7, 14, 14, 28, 28, 56, 56, 112, 96, 224, 192, 448, 384, 896, 768, 768, 512, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"8", 10, {120, 252, 462, 903, 903, 771, 903, 903, 462, 252, 510, 462, 903, 771, 771, 903, 390, 510, 252, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"9", 10, {120, 252, 462, 903, 903, 771, 903, 903, 463, 511, 123, 3, 7, 6, 14, 28, 124, 1008, 992, 512, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{":", 4, {0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{";", 4, {0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, } },
	{"<", 6, {3, 3, 7, 14, 14, 28, 24, 56, 48, 48, 48, 48, 56, 28, 28, 14, 7, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"=", 6, {0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{">", 6, {0, 0, 0, 48, 56, 28, 14, 15, 7, 3, 3, 7, 14, 28, 60, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 7, {28, 62, 54, 119, 99, 99, 3, 7, 6, 14, 12, 28, 28, 28, 0, 0, 28, 28, 28, 8, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"@", 8, {0, 0, 0, 0, 0, 0, 0, 0, 16, 120, 124, 248, 220, 252, 252, 220, 248, 126, 127, 19, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"A", 10, {48, 120, 120, 120, 252, 204, 204, 462, 462, 390, 1023, 1023, 771, 771, 771, 771, 771, 771, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"B", 10, {1008, 1020, 830, 783, 775, 771, 775, 783, 830, 1020, 1020, 798, 775, 771, 771, 775, 782, 1020, 1016, 960, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"C", 10, {120, 252, 462, 903, 771, 771, 768, 768, 768, 768, 768, 768, 768, 768, 771, 771, 903, 462, 252, 120, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"D", 10, {960, 1008, 1016, 796, 782, 782, 775, 775, 771, 771, 771, 775, 775, 774, 782, 796, 828, 1016, 992, 896, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"E", 10, {1023, 1023, 768, 768, 768, 768, 768, 768, 1020, 1020, 768, 768, 768, 768, 768, 768, 768, 768, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"F", 10, {1023, 1023, 768, 768, 768, 768, 768, 768, 1020, 1020, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"G", 10, {120, 252, 252, 462, 390, 388, 896, 896, 768, 768, 768, 783, 911, 911, 391, 391, 463, 252, 120, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"H", 10, {771, 771, 771, 771, 771, 771, 771, 771, 1023, 1023, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"I", 6, {15, 15, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"J", 9, {15, 15, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 390, 390, 462, 252, 120, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"K", 10, {771, 771, 775, 782, 796, 824, 880, 992, 960, 896, 896, 960, 992, 880, 824, 796, 782, 775, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"L", 10, {768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"M", 12, {3075, 3075, 3075, 3591, 3591, 3855, 3855, 3999, 3999, 3483, 3579, 3315, 3315, 3171, 3075, 3075, 3075, 3075, 3075, 3075, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"N", 10, {771, 771, 899, 899, 963, 963, 995, 995, 883, 883, 827, 795, 799, 783, 783, 775, 775, 771, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"O", 10, {120, 252, 252, 462, 390, 390, 903, 903, 771, 771, 771, 771, 903, 903, 390, 390, 462, 252, 120, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"P", 10, {1008, 1020, 830, 775, 771, 775, 783, 1022, 1020, 992, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Q", 10, {120, 252, 462, 903, 775, 771, 771, 771, 771, 771, 771, 771, 771, 771, 775, 782, 924, 508, 508, 236, 14, 14, 6, 6, 6, 0, 0, 0, } },
	{"R", 10, {1008, 1020, 830, 775, 771, 775, 783, 1022, 1020, 992, 864, 880, 824, 824, 796, 782, 782, 775, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"S", 10, {124, 254, 455, 899, 771, 768, 768, 896, 448, 252, 126, 15, 7, 3, 3, 771, 775, 910, 508, 248, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"T", 10, {1023, 1023, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"U", 10, {771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 903, 510, 252, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"V", 10, {771, 771, 771, 771, 771, 903, 903, 390, 390, 462, 462, 204, 204, 204, 204, 252, 120, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"W", 12, {3075, 3075, 3075, 3075, 3075, 3075, 3075, 3075, 3075, 3075, 3171, 3171, 3171, 3315, 3315, 3483, 3999, 1806, 1806, 1806, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"X", 10, {771, 771, 903, 903, 462, 462, 204, 204, 252, 120, 120, 252, 204, 204, 462, 390, 903, 771, 771, 771, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Y", 10, {771, 771, 903, 390, 462, 204, 252, 120, 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Z", 10, {1023, 1023, 3, 7, 6, 12, 12, 24, 24, 48, 48, 96, 96, 192, 192, 384, 896, 768, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"[", 5, {15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\\", 6, {32, 48, 48, 48, 56, 56, 24, 28, 28, 12, 12, 14, 6, 6, 7, 7, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"]", 5, {15, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"^", 6, {12, 30, 30, 63, 63, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 8, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, } },
	{"`", 5, {4, 6, 6, 7, 7, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"a", 7, {0, 0, 0, 0, 0, 0, 0, 0, 62, 63, 7, 3, 3, 63, 127, 99, 99, 99, 127, 59, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"b", 7, {96, 96, 96, 96, 96, 96, 96, 96, 110, 127, 127, 115, 99, 99, 99, 99, 115, 127, 127, 110, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"c", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 63, 51, 112, 96, 96, 96, 112, 51, 63, 28, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"d", 7, {3, 3, 3, 3, 3, 3, 3, 3, 27, 63, 63, 119, 99, 99, 99, 99, 119, 127, 63, 27, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"e", 7, {0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 127, 99, 99, 127, 127, 96, 96, 115, 63, 30, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"f", 6, {14, 31, 59, 48, 48, 48, 48, 48, 63, 63, 63, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"g", 7, {0, 0, 0, 0, 0, 0, 0, 0, 27, 63, 127, 103, 99, 99, 99, 99, 103, 127, 63, 27, 3, 3, 3, 3, 3, 103, 126, 60, } },
	{"h", 7, {96, 96, 96, 96, 96, 96, 96, 96, 96, 126, 127, 99, 99, 99, 99, 99, 99, 99, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"i", 4, {0, 0, 0, 7, 7, 7, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"j", 7, {0, 0, 0, 7, 7, 7, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 102, 102, 102, 126, 60, } },
	{"k", 7, {96, 96, 96, 96, 96, 96, 96, 96, 99, 103, 126, 124, 120, 112, 112, 120, 124, 126, 103, 99, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"l", 4, {7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"m", 10, {0, 0, 0, 0, 0, 0, 0, 0, 972, 1022, 1023, 819, 819, 819, 819, 819, 819, 819, 819, 819, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"n", 7, {0, 0, 0, 0, 0, 0, 0, 0, 102, 127, 127, 99, 99, 99, 99, 99, 99, 99, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"o", 7, {0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 62, 119, 99, 99, 99, 99, 119, 62, 62, 28, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"p", 7, {0, 0, 0, 0, 0, 0, 0, 0, 108, 126, 119, 99, 99, 99, 99, 99, 99, 119, 126, 108, 96, 96, 96, 96, 96, 96, 96, 96, } },
	{"q", 7, {0, 0, 0, 0, 0, 0, 0, 0, 59, 127, 103, 99, 99, 99, 99, 99, 99, 103, 127, 59, 3, 3, 3, 3, 3, 3, 3, 3, } },
	{"r", 7, {0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 99, 99, 96, 96, 96, 96, 96, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"s", 7, {0, 0, 0, 0, 0, 0, 0, 0, 30, 63, 115, 96, 112, 126, 63, 7, 3, 103, 126, 60, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"t", 7, {0, 0, 0, 0, 0, 0, 24, 24, 126, 126, 24, 24, 24, 24, 24, 24, 24, 24, 31, 15, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"u", 7, {0, 0, 0, 0, 0, 0, 0, 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, 103, 127, 59, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"v", 7, {0, 0, 0, 0, 0, 0, 0, 0, 99, 99, 99, 99, 119, 119, 54, 54, 62, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"w", 10, {0, 0, 0, 0, 0, 0, 0, 0, 819, 819, 819, 819, 891, 891, 1023, 1023, 462, 462, 390, 390, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"x", 7, {0, 0, 0, 0, 0, 0, 0, 0, 99, 99, 99, 119, 62, 28, 28, 62, 119, 99, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"y", 7, {0, 0, 0, 0, 0, 0, 0, 0, 99, 99, 99, 99, 51, 51, 59, 27, 31, 15, 14, 6, 6, 14, 12, 12, 28, 24, 56, 48, } },
	{"z", 7, {0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 7, 6, 14, 28, 24, 56, 48, 112, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"{", 5, {2, 6, 6, 6, 6, 6, 4, 12, 12, 8, 12, 12, 12, 4, 6, 6, 6, 6, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"|", 4, {7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"}", 5, {4, 6, 6, 6, 6, 6, 2, 3, 3, 1, 3, 3, 3, 2, 6, 6, 6, 6, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"~", 7, {0, 0, 0, 0, 0, 0, 56, 124, 31, 31, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines28 = sizeof (Outlines28)/sizeof (Outlines28 [0] );
const int Height28
	= sizeof (Outlines28 [0].rows)/sizeof (Outlines28 [0].rows [0] );

int FindRows28 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines28) {
		j = i;
		while (j < NumOutlines28
				&& ((position > 0
				&& (strlen (Outlines28 [j].title)
						<= position
				|| memcmp (Outlines28 [i].title,
				Outlines28 [j].title, position) != 0) )
				|| Outlines28 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines28) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines28 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height28);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines28) {
		j = i;
		while (j < NumOutlines28
				&& ((position > 0
				&& (strlen (Outlines28 [j].title)
						< position
				|| memcmp (Outlines28 [i].title,
				Outlines28 [j].title, position) != 0) )
				|| Outlines28 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines28) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines28 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height28);
			}
		i = j;
		}
	if (i < NumOutlines28) {
		WidthPtr [0] = Outlines28 [i].width;
		RowsPtr [0] = Outlines28 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [37];
	} Outlines37 [] = {
	{"!", 5, {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 6, {51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"#", 10, {0, 0, 0, 0, 0, 0, 0, 66, 66, 198, 198, 198, 198, 1023, 1023, 462, 462, 462, 1023, 1023, 1023, 396, 396, 396, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"$", 10, {48, 48, 48, 48, 120, 510, 510, 951, 951, 816, 816, 944, 944, 496, 252, 126, 62, 55, 55, 51, 51, 951, 438, 510, 252, 120, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, } },
	{"%", 11, {387, 963, 2019, 1639, 1638, 1646, 2030, 972, 988, 24, 56, 48, 112, 112, 96, 224, 192, 478, 414, 959, 947, 819, 1847, 1599, 1566, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"&", 11, {96, 240, 248, 472, 472, 472, 408, 216, 248, 496, 1008, 992, 864, 1904, 1904, 1584, 1592, 1595, 1823, 1823, 1823, 782, 910, 508, 252, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 4, {3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"(", 5, {0, 3, 7, 7, 14, 12, 12, 28, 28, 24, 24, 24, 24, 24, 24, 24, 24, 28, 28, 12, 12, 14, 7, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{")", 6, {0, 24, 28, 30, 14, 6, 6, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 7, 7, 6, 6, 14, 30, 28, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"*", 8, {195, 195, 231, 102, 126, 60, 255, 255, 255, 60, 126, 231, 231, 195, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 8, {0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 255, 255, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, } },
	{"-", 8, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{".", 5, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"/", 8, {1, 3, 3, 3, 7, 7, 6, 14, 14, 12, 12, 28, 24, 24, 56, 48, 48, 112, 112, 96, 224, 224, 192, 192, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"0", 13, {496, 1016, 2044, 3870, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7399, 7399, 7399, 7399, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 3870, 2044, 1016, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"1", 8, {6, 14, 30, 30, 30, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"2", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15, 30, 60, 120, 240, 480, 960, 8191, 8191, 8191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"3", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7175, 7, 7, 7, 15, 30, 252, 252, 254, 15, 7, 7, 7, 7175, 7175, 7175, 7695, 4094, 2044, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"4", 13, {28, 60, 124, 252, 252, 476, 412, 924, 1820, 1820, 3612, 8191, 8191, 8191, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"5", 13, {8191, 8191, 8191, 7168, 7168, 7168, 7168, 7168, 7168, 8176, 8184, 8188, 30, 15, 7, 7, 7, 7, 7, 7, 15, 30, 60, 8184, 8176, 8160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"6", 13, {63, 127, 255, 480, 960, 1920, 3840, 7680, 7168, 7168, 7168, 7672, 8188, 8190, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 4094, 2044, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"7", 13, {8191, 8191, 8191, 15, 14, 14, 30, 28, 60, 56, 120, 112, 240, 224, 480, 448, 960, 896, 1920, 1792, 3840, 3584, 7680, 7168, 7168, 7168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"8", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 3870, 2044, 2044, 3870, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 4094, 2044, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"9", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 4095, 2047, 1015, 7, 7, 7, 14, 30, 60, 120, 240, 8160, 8128, 8064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{":", 5, {0, 0, 0, 0, 0, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{";", 5, {0, 0, 0, 0, 0, 0, 0, 6, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, } },
	{"<", 8, {3, 3, 7, 14, 14, 28, 24, 56, 112, 112, 224, 192, 192, 192, 192, 224, 112, 112, 56, 24, 28, 14, 14, 7, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"=", 8, {0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{">", 8, {0, 0, 0, 0, 192, 224, 112, 56, 28, 30, 14, 7, 3, 3, 7, 14, 28, 60, 56, 112, 224, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 10, {120, 252, 462, 390, 903, 903, 771, 3, 3, 7, 7, 14, 30, 28, 48, 48, 48, 48, 48, 48, 0, 0, 48, 120, 120, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"@", 11, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 496, 1016, 792, 1912, 1912, 1788, 1788, 1788, 1912, 1912, 796, 1022, 511, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"A", 13, {224, 224, 496, 496, 952, 952, 952, 1820, 1820, 1820, 3598, 3598, 3598, 4094, 4094, 8191, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"B", 13, {8176, 8184, 8188, 7198, 7183, 7175, 7175, 7175, 7175, 7183, 7198, 8188, 8184, 8184, 7228, 7198, 7183, 7175, 7175, 7175, 7175, 7183, 7198, 8188, 8184, 8176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"C", 13, {496, 1016, 2044, 3870, 7695, 7175, 7175, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7175, 7175, 7695, 3870, 2044, 1016, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"D", 13, {8128, 8160, 8176, 7288, 7228, 7198, 7183, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7183, 7198, 7228, 8184, 8176, 8160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"E", 13, {8191, 8191, 8191, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 8184, 8184, 8184, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 8191, 8191, 8191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"F", 13, {8191, 8191, 8191, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 8184, 8184, 8184, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"G", 13, {496, 1016, 2044, 3870, 7695, 7175, 7175, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7199, 7199, 7199, 7175, 7175, 7175, 7175, 7695, 3870, 2044, 1016, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"H", 13, {7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 8191, 8191, 8191, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"I", 8, {31, 31, 31, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"J", 12, {31, 31, 31, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 3598, 3598, 3870, 2044, 1016, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"K", 13, {7175, 7175, 7183, 7198, 7228, 7288, 7408, 7648, 8128, 8064, 7936, 7680, 7168, 7168, 7680, 7936, 8064, 8128, 7648, 7408, 7288, 7228, 7198, 7183, 7175, 7175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"L", 13, {7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 8191, 8191, 8191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"M", 16, {49155, 57351, 57351, 61455, 61455, 63519, 63519, 64575, 64575, 64575, 65151, 61047, 61047, 58983, 59367, 59367, 58311, 58311, 57799, 57799, 57799, 57351, 57351, 57351, 57351, 57351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"N", 14, {14343, 14343, 15367, 15879, 16135, 16135, 16263, 15239, 15303, 14791, 14791, 14823, 14567, 14567, 14567, 14455, 14455, 14399, 14399, 14399, 14367, 14367, 14367, 14351, 14343, 14343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"O", 13, {496, 1016, 2044, 3870, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 3870, 2044, 1016, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"P", 13, {7664, 8184, 8188, 7710, 7183, 7175, 7175, 7175, 7183, 7710, 8188, 8184, 7664, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 7168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Q", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 3870, 2044, 1016, 508, 30, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, } },
	{"R", 13, {8184, 8188, 8190, 7183, 7175, 7175, 7175, 7175, 7175, 7183, 7198, 8188, 8184, 8176, 7648, 7392, 7392, 7280, 7224, 7224, 7196, 7182, 7182, 7183, 7175, 7175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"S", 13, {1016, 2044, 4094, 7695, 7175, 7175, 7168, 7168, 7168, 7168, 7680, 3840, 2040, 1020, 510, 15, 7, 7, 7, 7, 7175, 7183, 7710, 4092, 2040, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"T", 13, {8191, 8191, 8191, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"U", 13, {7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 4094, 2044, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"V", 13, {7175, 7175, 7175, 7175, 7175, 7175, 7175, 7695, 3598, 3598, 3870, 1820, 1820, 1820, 1820, 1820, 1820, 792, 792, 952, 952, 496, 496, 224, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"W", 16, {57351, 57351, 57351, 57351, 57351, 57351, 57351, 57351, 57351, 57351, 57351, 57799, 57799, 57799, 57799, 58311, 58311, 59367, 59366, 30318, 32382, 31868, 14396, 14364, 14364, 14364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"X", 13, {7175, 7175, 7175, 7175, 3598, 3598, 1820, 1820, 952, 1016, 496, 496, 224, 224, 496, 496, 1016, 952, 1820, 1820, 3598, 3598, 7175, 7175, 7175, 7175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Y", 13, {7175, 7175, 7175, 3598, 3598, 1548, 1820, 952, 1016, 496, 496, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Z", 13, {8191, 8191, 8191, 7, 14, 14, 28, 28, 56, 56, 112, 112, 224, 224, 448, 448, 896, 896, 1792, 1792, 3584, 3584, 7168, 8191, 8191, 8191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"[", 7, {63, 63, 63, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\\", 8, {128, 192, 192, 192, 224, 224, 96, 112, 112, 48, 48, 56, 24, 24, 28, 12, 12, 14, 14, 6, 7, 7, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"]", 7, {63, 63, 63, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"^", 8, {24, 60, 60, 126, 126, 102, 231, 231, 195, 195, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 11, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2047, 2047, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"`", 7, {8, 8, 12, 12, 14, 6, 7, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"a", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 126, 127, 7, 3, 3, 511, 1023, 1023, 903, 903, 903, 1023, 1023, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"b", 10, {896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 956, 1022, 1023, 967, 903, 903, 903, 903, 903, 903, 903, 967, 1022, 1022, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"c", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 254, 511, 967, 903, 896, 768, 768, 768, 896, 903, 967, 511, 254, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"d", 10, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 247, 511, 1023, 911, 903, 903, 903, 903, 903, 903, 903, 911, 1023, 511, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"e", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 252, 510, 975, 903, 903, 1023, 1023, 1023, 896, 896, 967, 511, 254, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"f", 10, {124, 254, 511, 967, 903, 896, 896, 896, 896, 896, 896, 1020, 1020, 1020, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"g", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 511, 1023, 911, 903, 903, 903, 903, 903, 903, 903, 911, 1023, 511, 247, 7, 7, 7, 7, 7, 7, 903, 975, 1022, 508, 120, } },
	{"h", 10, {896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 958, 1023, 1023, 967, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"i", 5, {0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"j", 9, {0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 455, 455, 455, 511, 254, 124, } },
	{"k", 10, {896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 903, 911, 927, 952, 1008, 992, 960, 896, 960, 992, 1008, 952, 927, 911, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"l", 5, {15, 15, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"m", 15, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29692, 32766, 32767, 31175, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"n", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 956, 1022, 1023, 967, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"o", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 252, 510, 975, 903, 903, 903, 903, 903, 903, 903, 975, 510, 252, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"p", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 956, 1022, 1023, 967, 903, 903, 903, 903, 903, 903, 903, 967, 1023, 1022, 956, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, } },
	{"q", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 511, 1023, 911, 903, 903, 903, 903, 903, 903, 903, 911, 1023, 511, 247, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, } },
	{"r", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 956, 1022, 1023, 967, 903, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"s", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 510, 1023, 903, 896, 896, 504, 252, 126, 7, 7, 903, 1023, 510, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"t", 10, {0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 224, 1020, 1020, 1020, 224, 224, 224, 224, 224, 224, 224, 224, 231, 255, 126, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"u", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 911, 1023, 511, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"v", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 903, 903, 903, 903, 903, 903, 462, 462, 462, 252, 252, 120, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"w", 15, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29127, 29127, 29127, 29127, 29127, 29127, 29127, 29671, 29671, 32767, 16254, 7740, 7740, 3640, 3096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"x", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 903, 975, 462, 204, 252, 120, 120, 120, 252, 204, 462, 975, 903, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"y", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 903, 903, 903, 903, 903, 455, 455, 455, 487, 231, 231, 255, 127, 62, 28, 28, 28, 28, 28, 28, 60, 60, 120, 240, 480, 448, } },
	{"z", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1023, 1023, 1023, 14, 14, 30, 60, 120, 240, 480, 448, 448, 1023, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"{", 7, {7, 15, 31, 60, 56, 56, 60, 28, 28, 28, 56, 56, 112, 112, 56, 56, 28, 28, 28, 60, 56, 56, 60, 31, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"|", 4, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"}", 8, {112, 120, 124, 30, 14, 14, 30, 28, 28, 30, 14, 14, 7, 7, 14, 14, 30, 28, 28, 30, 14, 14, 30, 124, 120, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"~", 10, {0, 0, 0, 0, 0, 0, 0, 192, 480, 1008, 816, 51, 63, 30, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines37 = sizeof (Outlines37)/sizeof (Outlines37 [0] );
const int Height37
	= sizeof (Outlines37 [0].rows)/sizeof (Outlines37 [0].rows [0] );

int FindRows37 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines37) {
		j = i;
		while (j < NumOutlines37
				&& ((position > 0
				&& (strlen (Outlines37 [j].title)
						<= position
				|| memcmp (Outlines37 [i].title,
				Outlines37 [j].title, position) != 0) )
				|| Outlines37 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines37) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines37 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height37);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines37) {
		j = i;
		while (j < NumOutlines37
				&& ((position > 0
				&& (strlen (Outlines37 [j].title)
						< position
				|| memcmp (Outlines37 [i].title,
				Outlines37 [j].title, position) != 0) )
				|| Outlines37 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines37) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines37 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height37);
			}
		i = j;
		}
	if (i < NumOutlines37) {
		WidthPtr [0] = Outlines37 [i].width;
		RowsPtr [0] = Outlines37 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [59];
	} Outlines59 [] = {
	{"!", 7, {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 10, {903, 903, 903, 903, 903, 903, 903, 903, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"#", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 774, 774, 774, 1806, 1806, 1806, 1806, 1806, 1806, 16383, 16383, 16383, 3612, 3612, 3612, 3612, 3612, 16383, 16383, 16383, 16383, 7224, 7224, 7224, 7224, 7224, 6192, 6192, 6192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"$", 14, {480, 480, 480, 480, 480, 480, 480, 2040, 4092, 4092, 8190, 7662, 15855, 14823, 14816, 14816, 14816, 14816, 15840, 7648, 8160, 8160, 4064, 2040, 1020, 508, 510, 494, 495, 487, 487, 487, 487, 14823, 15855, 7662, 7662, 8190, 4092, 2040, 1008, 480, 480, 480, 480, 480, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"%", 17, {14339, 32259, 65031, 61191, 124687, 116494, 116494, 116510, 116508, 116540, 124728, 61240, 65144, 31856, 14576, 224, 480, 480, 448, 960, 896, 1920, 1792, 1792, 3840, 3584, 7680, 7292, 7420, 15614, 14798, 31175, 29127, 61895, 61895, 57799, 123343, 115182, 114942, 98556, 98424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"&", 17, {896, 4032, 4032, 7904, 7392, 7392, 7408, 15472, 15472, 15472, 14576, 7408, 7392, 7392, 8160, 16320, 32640, 32512, 63232, 59136, 59264, 58240, 123776, 115648, 115648, 115136, 115136, 115175, 114919, 114919, 123135, 123007, 57470, 57470, 61502, 28732, 30780, 15480, 8184, 8184, 1992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 7, {15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"(", 6, {2, 3, 7, 7, 7, 14, 14, 14, 30, 28, 28, 28, 28, 60, 60, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 60, 28, 28, 28, 28, 28, 14, 14, 14, 15, 7, 7, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{")", 10, {16, 48, 56, 56, 56, 28, 28, 28, 30, 14, 14, 14, 14, 15, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15, 14, 14, 14, 14, 14, 28, 28, 28, 60, 56, 56, 48, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"*", 12, {3075, 3591, 3591, 3855, 3855, 1950, 924, 1020, 504, 504, 4095, 4095, 4095, 504, 504, 1020, 924, 1950, 1806, 3855, 3591, 3591, 3075, 3075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 240, 240, 240, 240, 240, 240, 4095, 4095, 4095, 240, 240, 240, 240, 240, 240, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 7, 7, 15, 14, 14, 14, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"-", 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4095, 4095, 4095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{".", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"/", 12, {3, 3, 3, 7, 7, 7, 15, 14, 14, 14, 30, 28, 28, 60, 56, 56, 56, 120, 112, 112, 240, 224, 224, 224, 480, 448, 448, 960, 896, 896, 1920, 1920, 1792, 1792, 3840, 3584, 3584, 3584, 3072, 3072, 3072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"0", 19, {3968, 8128, 16352, 32752, 30960, 61560, 57400, 122940, 122908, 114716, 245790, 245790, 491535, 491535, 491535, 491535, 491535, 491535, 493327, 495503, 495503, 495503, 493327, 491535, 491535, 491535, 491535, 491535, 507919, 245790, 245790, 245790, 122940, 122940, 122940, 61560, 63736, 32752, 16352, 8128, 3968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"1", 10, {30, 30, 30, 30, 62, 62, 62, 62, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 63, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"2", 19, {4064, 16368, 65528, 131068, 122942, 245791, 229391, 491535, 491535, 491535, 15, 15, 15, 15, 15, 15, 15, 15, 15, 31, 30, 30, 30, 30, 60, 60, 56, 120, 240, 240, 480, 992, 960, 1984, 3968, 7936, 32256, 524287, 524287, 524287, 524287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"3", 19, {4032, 16368, 32760, 65532, 127038, 253982, 507919, 491535, 491535, 491535, 491535, 15, 15, 15, 15, 15, 30, 62, 124, 2040, 2032, 2040, 2044, 62, 30, 15, 15, 15, 15, 15, 491535, 491535, 491535, 491535, 491534, 245790, 122942, 131068, 65528, 32752, 8128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"4", 19, {120, 120, 248, 248, 504, 1016, 1016, 2040, 3960, 3960, 7800, 15480, 31864, 30840, 61560, 127096, 123000, 245880, 245880, 524287, 524287, 524287, 524287, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"5", 19, {524287, 524287, 524287, 524287, 458752, 458752, 458752, 458752, 458752, 458752, 458752, 458752, 458752, 458752, 523776, 524160, 524256, 524272, 504, 124, 62, 30, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 30, 62, 124, 248, 496, 262112, 262080, 262016, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"6", 19, {15, 255, 1023, 2047, 4064, 7936, 15872, 31744, 63488, 126976, 122880, 245760, 245760, 491520, 491520, 491520, 458752, 458752, 466912, 491504, 524280, 524284, 516158, 507934, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 229391, 229391, 245790, 254014, 131068, 131064, 65520, 32736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"7", 19, {524287, 524287, 524287, 524287, 30, 30, 30, 60, 60, 60, 120, 120, 248, 240, 240, 496, 480, 992, 960, 1984, 1920, 3968, 3840, 7936, 7680, 7680, 15360, 15360, 30720, 30720, 61440, 61440, 122880, 122880, 253952, 245760, 507904, 507904, 491520, 491520, 491520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"8", 19, {16368, 32760, 65532, 131070, 254015, 507935, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 507935, 516159, 258174, 131068, 65528, 65532, 131070, 254015, 507935, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 507935, 516159, 262142, 131068, 65528, 32752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"9", 19, {16352, 32752, 65528, 131068, 258174, 254014, 507935, 507935, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 507919, 507935, 254015, 258175, 131071, 65527, 32743, 16327, 7, 15, 15, 15, 31, 30, 62, 124, 248, 496, 992, 1984, 16256, 524032, 523776, 522240, 516096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{":", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{";", 7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 7, 7, 15, 14, 14, 14, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"<", 12, {3, 7, 7, 15, 14, 30, 60, 60, 120, 112, 240, 480, 480, 960, 896, 1920, 1792, 3840, 3584, 3584, 3072, 3072, 3584, 3840, 3840, 1920, 896, 960, 448, 480, 240, 240, 120, 56, 60, 28, 30, 15, 7, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"=", 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4095, 4095, 4095, 0, 0, 0, 0, 0, 4095, 4095, 4095, 4095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{">", 12, {0, 0, 0, 0, 0, 0, 3584, 3584, 3840, 1920, 960, 992, 480, 240, 120, 60, 30, 30, 15, 7, 3, 7, 15, 15, 30, 60, 120, 240, 240, 480, 960, 1920, 3840, 3840, 3584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 14, {480, 1008, 2040, 3900, 3612, 7182, 7182, 15375, 14343, 14343, 14343, 14343, 7, 7, 7, 15, 14, 14, 30, 28, 124, 120, 112, 480, 480, 480, 480, 480, 480, 480, 480, 480, 0, 0, 0, 0, 0, 480, 480, 480, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"@", 17, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7936, 16256, 32704, 29152, 61664, 57568, 58336, 124896, 116720, 118640, 118392, 118392, 118392, 118640, 116720, 124896, 58336, 57584, 61688, 29180, 32766, 16287, 7943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"A", 19, {1792, 3968, 3968, 3968, 8128, 8128, 7616, 15840, 15840, 30960, 30960, 30960, 30960, 61560, 61560, 61560, 122940, 122940, 122940, 114716, 245790, 262142, 262142, 262142, 524287, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"B", 19, {524160, 524256, 524272, 524280, 491772, 491582, 491551, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491551, 491582, 491644, 524280, 524272, 524256, 524272, 491768, 491644, 491582, 491551, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491551, 491582, 491644, 524280, 524272, 524256, 524224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"C", 19, {16320, 32736, 65520, 131064, 258172, 516158, 507935, 491535, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 507904, 516126, 258110, 129148, 65528, 32752, 16352, 8128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"D", 19, {524224, 524256, 524272, 524280, 491772, 491646, 491583, 491551, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491551, 491583, 491646, 491772, 524280, 524272, 524256, 524224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"E", 19, {524287, 524287, 524287, 524287, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 524272, 524272, 524272, 524272, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 524287, 524287, 524287, 524287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"F", 19, {524287, 524287, 524287, 524287, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 524272, 524272, 524272, 524272, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"G", 19, {8128, 16352, 32752, 65528, 127100, 122940, 122940, 245822, 245790, 245790, 229406, 491550, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491775, 491775, 491775, 491775, 491535, 491535, 491535, 491535, 245791, 245791, 245822, 122940, 123004, 127224, 65520, 65504, 32704, 16256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"H", 19, {491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 524287, 524287, 524287, 524287, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"I", 10, {63, 63, 63, 63, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 63, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"J", 17, {63, 63, 63, 63, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 122910, 122910, 122910, 127038, 131068, 65528, 32752, 8128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"K", 19, {491527, 491527, 491535, 491551, 491582, 491644, 491644, 491768, 491760, 492000, 492480, 493440, 495488, 499456, 507392, 523264, 522240, 520192, 516096, 507904, 507904, 516096, 520192, 522240, 522240, 523264, 507392, 499456, 495488, 493440, 493504, 492512, 492016, 491760, 491640, 491644, 491580, 491550, 491551, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"L", 19, {491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 524287, 524287, 524287, 524287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"M", 24, {15728655, 15728655, 15728655, 15728655, 15728655, 16252959, 16252959, 16515135, 16515135, 16646207, 16646271, 16646271, 16711807, 16711935, 16711935, 16187631, 16220655, 16220655, 15958479, 15975375, 15844239, 15853455, 15853455, 15793935, 15793935, 15760911, 15760911, 15744015, 15744015, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"N", 19, {491535, 491535, 491535, 491535, 507919, 507919, 516111, 516111, 520207, 520207, 520207, 522255, 522255, 523279, 506895, 506895, 499215, 499215, 499215, 495375, 495375, 493455, 493455, 493519, 492495, 492495, 492015, 492015, 492031, 491775, 491775, 491647, 491647, 491583, 491583, 491551, 491551, 491535, 491535, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"O", 19, {4032, 8160, 16368, 32760, 63736, 122940, 122942, 245790, 245790, 507935, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 507935, 507934, 245790, 254012, 122936, 129272, 65520, 32736, 16320, 8064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"P", 19, {499584, 524256, 524280, 524280, 516348, 491582, 491551, 491535, 491535, 491535, 491535, 491535, 491535, 491551, 491582, 491644, 492024, 524272, 524256, 524224, 524032, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 491520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Q", 19, {8128, 16352, 32752, 32760, 61688, 57468, 122940, 114750, 245790, 245791, 245775, 245775, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491919, 492431, 508879, 246751, 246783, 254462, 127486, 131068, 65528, 32752, 8176, 120, 120, 124, 60, 60, 62, 30, 30, 31, 15, 15, 15, 0, 0, 0, 0, 0, 0, } },
	{"R", 19, {524160, 524224, 524272, 524280, 491772, 491582, 491551, 491551, 491535, 491535, 491535, 491535, 491535, 491551, 491582, 491644, 491768, 524272, 524256, 524224, 523776, 499200, 499200, 499200, 495360, 495360, 493440, 493440, 492480, 492000, 492000, 491760, 491768, 491640, 491580, 491582, 491550, 491551, 491535, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"S", 19, {8064, 32736, 65528, 131068, 123006, 245791, 229391, 491535, 491535, 491520, 491520, 491520, 491520, 491520, 491520, 245760, 245760, 122880, 126976, 65472, 32752, 16376, 4092, 124, 30, 30, 15, 15, 15, 15, 15, 15, 491535, 491535, 491535, 507934, 258110, 262140, 131064, 65520, 16352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"T", 19, {524287, 524287, 524287, 524287, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"U", 19, {491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 245790, 262142, 131068, 65528, 16352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"V", 19, {491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 491535, 507935, 245790, 245790, 245790, 245790, 245790, 245790, 122940, 122940, 122940, 57404, 61564, 61560, 61560, 61560, 63736, 30960, 30960, 30960, 14560, 14560, 15840, 15840, 7616, 8128, 8128, 8128, 3968, 3968, 3968, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"W", 24, {15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15728655, 15744015, 15760399, 15760911, 15760911, 16318239, 7929631, 7923486, 7923614, 7989150, 7979934, 7979934, 8111070, 3916764, 4162044, 4162044, 4129020, 2031864, 1966200, 1966200, 1966200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"X", 19, {491535, 491535, 491535, 491535, 507935, 245790, 254014, 254014, 122940, 122940, 127096, 61560, 63728, 30960, 32224, 16352, 16320, 8128, 8128, 3968, 3968, 8128, 8128, 8128, 8128, 15840, 14560, 30960, 30960, 61560, 61560, 122940, 122940, 114718, 245790, 245791, 507935, 491535, 491535, 491535, 491535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Y", 19, {491535, 491535, 491535, 491535, 245790, 245790, 254012, 122940, 122936, 127096, 61552, 30960, 30944, 31200, 16320, 16320, 8064, 7936, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Z", 19, {524287, 524287, 524287, 524287, 30, 30, 62, 60, 60, 124, 120, 248, 240, 496, 480, 480, 960, 960, 1984, 1920, 3968, 3840, 7936, 7680, 7680, 15872, 15360, 31744, 30720, 30720, 61440, 61440, 122880, 122880, 253952, 245760, 245760, 524287, 524287, 524287, 524287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"[", 10, {255, 255, 255, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\\", 12, {3072, 3072, 3072, 3584, 3584, 3584, 3840, 1792, 1792, 1792, 1920, 896, 896, 960, 448, 448, 448, 480, 224, 224, 240, 112, 112, 112, 120, 56, 56, 60, 28, 28, 30, 30, 14, 14, 15, 7, 7, 7, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"]", 10, {255, 255, 255, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"^", 12, {240, 240, 504, 504, 504, 1020, 1020, 924, 1950, 1806, 1806, 3855, 3591, 3591, 3591, 3075, 3075, 3075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 17, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131071, 131071, 131071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"`", 10, {32, 48, 48, 56, 56, 56, 60, 28, 30, 14, 14, 15, 7, 7, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"a", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4094, 4095, 4095, 4095, 15, 7, 7, 7, 7, 2031, 4095, 8191, 16383, 15391, 14351, 14351, 14351, 14351, 15391, 16383, 8191, 4095, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"b", 14, {15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15600, 16376, 16380, 16382, 16159, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 16159, 16382, 16380, 16376, 15600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"c", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 2040, 4092, 8190, 15903, 15375, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15375, 15903, 8190, 4092, 2040, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"d", 14, {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 975, 2047, 4095, 8191, 15935, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15935, 8191, 4095, 2047, 975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"e", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 2040, 4092, 8190, 15903, 15375, 15375, 15375, 15375, 15375, 16383, 16383, 16383, 16383, 15360, 15360, 15360, 15360, 15902, 8190, 4092, 2040, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"f", 14, {1008, 2040, 4092, 8190, 15903, 15375, 15375, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 16376, 16376, 16376, 16376, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"g", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, 2047, 4095, 8191, 15935, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15935, 8191, 4095, 2047, 975, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7695, 7967, 4094, 2044, 1016, 496, } },
	{"h", 14, {15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15608, 16380, 16382, 16383, 16159, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"i", 7, {0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"j", 13, {0, 0, 0, 0, 0, 0, 30, 31, 31, 31, 14, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3855, 3855, 3999, 4094, 2044, 1016, 496, } },
	{"k", 14, {15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15375, 15391, 15422, 15484, 15608, 15856, 16352, 16320, 16256, 16128, 15872, 15360, 15872, 16128, 16256, 16320, 16352, 15856, 15608, 15484, 15422, 15391, 15375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"l", 7, {31, 31, 31, 31, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"m", 20, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999408, 1048568, 1048572, 1048574, 1036063, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 986895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"n", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15608, 16380, 16382, 16383, 16159, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"o", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 2040, 4092, 8190, 15903, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15903, 8190, 4092, 2040, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"p", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15600, 16376, 16380, 16382, 16159, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 16159, 16382, 16380, 16376, 15600, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, } },
	{"q", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, 2047, 4095, 8191, 15935, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 7743, 8191, 4095, 2047, 975, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, } },
	{"r", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15608, 16380, 16382, 16383, 16143, 15367, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"s", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 2046, 4095, 8191, 15887, 15360, 15360, 15360, 15360, 15872, 8184, 4092, 2046, 1023, 31, 15, 15, 14351, 15391, 16382, 8188, 4088, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"t", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3840, 3840, 3840, 3840, 3840, 16376, 16376, 16376, 16376, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3847, 3983, 4095, 2046, 1020, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"u", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 15935, 16383, 8191, 4095, 1999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"v", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15375, 15375, 15375, 15375, 15375, 15375, 15375, 7710, 7710, 7710, 7710, 7710, 3612, 3900, 3900, 3900, 2040, 2040, 2040, 1008, 480, 480, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"w", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 493327, 493327, 493327, 493327, 495503, 495503, 495503, 499663, 499663, 499663, 499151, 507375, 245230, 243950, 260350, 129276, 129276, 129276, 127100, 127100, 61560, 61560, 61560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"x", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14343, 15375, 15375, 15375, 7710, 3612, 3900, 1848, 2040, 1008, 480, 480, 480, 1008, 2040, 1848, 3900, 3612, 7710, 15375, 15375, 15375, 14343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"y", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14351, 14351, 15375, 15375, 15887, 7695, 7695, 3855, 3855, 3855, 1807, 1935, 910, 910, 974, 462, 510, 252, 252, 252, 124, 124, 60, 60, 120, 120, 120, 120, 112, 112, 240, 240, 224, 224, 480, 448, 960, 16256, 16256, 16128, 7168, } },
	{"z", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16383, 16383, 16383, 16383, 30, 28, 60, 60, 120, 240, 240, 480, 448, 960, 1920, 1920, 3840, 3584, 7680, 16383, 16383, 16383, 16383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"{", 9, {3, 7, 15, 30, 28, 28, 28, 56, 56, 56, 56, 56, 56, 56, 48, 56, 56, 120, 240, 224, 192, 224, 240, 248, 120, 56, 56, 56, 56, 56, 56, 56, 56, 56, 60, 28, 28, 28, 15, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"|", 7, {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"}", 11, {192, 224, 240, 120, 56, 56, 56, 28, 28, 28, 28, 28, 28, 28, 12, 28, 28, 30, 15, 7, 3, 7, 15, 31, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28, 60, 56, 56, 56, 240, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"~", 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3840, 8064, 8128, 15808, 14816, 14816, 487, 231, 254, 254, 124, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines59 = sizeof (Outlines59)/sizeof (Outlines59 [0] );
const int Height59
	= sizeof (Outlines59 [0].rows)/sizeof (Outlines59 [0].rows [0] );

int FindRows59 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines59) {
		j = i;
		while (j < NumOutlines59
				&& ((position > 0
				&& (strlen (Outlines59 [j].title)
						<= position
				|| memcmp (Outlines59 [i].title,
				Outlines59 [j].title, position) != 0) )
				|| Outlines59 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines59) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines59 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height59);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines59) {
		j = i;
		while (j < NumOutlines59
				&& ((position > 0
				&& (strlen (Outlines59 [j].title)
						< position
				|| memcmp (Outlines59 [i].title,
				Outlines59 [j].title, position) != 0) )
				|| Outlines59 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines59) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines59 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height59);
			}
		i = j;
		}
	if (i < NumOutlines59) {
		WidthPtr [0] = Outlines59 [i].width;
		RowsPtr [0] = Outlines59 [i].rows;
		}
	return c;
	}


const struct {
	const char * title;
	const int width;
	const unsigned long int rows [75];
	} Outlines75 [] = {
	{"!", 10, {62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 28, 62, 127, 127, 127, 127, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\"", 13, {7967, 7967, 7967, 7967, 7967, 7967, 7967, 7967, 7967, 7967, 7967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"#", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14348, 14364, 14364, 14364, 30748, 30748, 30748, 30748, 30780, 30780, 30780, 524287, 524287, 524287, 524287, 524287, 63612, 61564, 127100, 127100, 127096, 127224, 524287, 524287, 524287, 524287, 524287, 123120, 123120, 123120, 114928, 114928, 114928, 114912, 114912, 114912, 98528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"$", 19, {3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 8128, 32752, 65528, 65528, 131068, 262142, 257982, 257982, 511903, 511903, 511888, 511872, 511872, 511872, 511872, 511872, 257920, 257920, 262016, 130944, 65472, 65520, 32760, 8184, 4092, 4094, 4030, 4030, 3999, 3999, 3999, 3999, 3999, 20383, 511903, 511903, 257982, 257982, 262142, 131068, 65528, 65528, 32752, 8128, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"%", 22, {245767, 516103, 1044495, 2095119, 2095119, 1997855, 4095007, 4095038, 4095038, 4095102, 4095100, 4095100, 4095224, 2062584, 2095608, 2095600, 1045488, 517088, 99296, 1984, 1984, 4032, 3968, 3968, 7936, 7936, 15872, 15872, 32256, 31744, 31744, 63488, 63488, 129024, 127216, 127992, 254972, 255998, 509950, 511903, 1036191, 1019807, 1019807, 2035615, 2035615, 4132767, 4067231, 4065278, 3934206, 3933180, 3671036, 3670520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"&", 22, {7168, 32256, 32512, 65408, 65408, 128960, 128960, 124864, 123840, 254912, 254912, 254912, 246720, 123840, 58304, 59328, 63424, 63360, 130944, 262016, 524032, 523776, 1047552, 1047552, 2063360, 2047488, 2047488, 1981952, 4071168, 4071168, 4071168, 4071168, 4067200, 4067200, 4067231, 4065247, 4065247, 4065247, 4064255, 1967102, 2032638, 2032126, 2032126, 1016316, 1016060, 1032444, 508152, 259064, 262136, 131064, 65528, 32696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"'", 9, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"(", 8, {2, 6, 7, 15, 15, 31, 31, 31, 62, 62, 62, 60, 124, 124, 124, 124, 120, 120, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 120, 124, 124, 124, 124, 60, 62, 62, 62, 30, 31, 31, 15, 15, 15, 6, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{")", 13, {64, 96, 224, 240, 240, 248, 248, 248, 124, 124, 124, 60, 62, 62, 62, 62, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 30, 62, 62, 62, 62, 60, 124, 124, 124, 120, 248, 248, 240, 240, 240, 96, 96, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"*", 16, {57351, 61455, 61455, 63519, 63519, 64575, 31806, 32382, 15996, 16380, 8184, 8184, 4080, 65535, 65535, 65535, 65535, 4080, 8184, 8184, 16380, 15996, 32382, 31806, 64575, 63519, 63519, 61455, 61455, 57351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"+", 16, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, 960, 960, 960, 960, 960, 960, 960, 960, 65535, 65535, 65535, 65535, 65535, 960, 960, 960, 960, 960, 960, 960, 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{",", 9, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 15, 15, 31, 31, 31, 30, 30, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"-", 16, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65535, 65535, 65535, 65535, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{".", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 127, 127, 127, 127, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"/", 16, {7, 7, 7, 15, 15, 15, 15, 31, 31, 31, 62, 62, 62, 124, 124, 124, 248, 248, 248, 248, 496, 496, 496, 992, 992, 992, 1984, 1984, 1984, 1984, 3968, 3968, 3968, 7936, 7936, 7936, 15872, 15872, 15872, 31744, 31744, 31744, 31744, 63488, 63488, 63488, 61440, 61440, 61440, 57344, 57344, 57344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"0", 26, {64512, 130560, 524160, 524160, 1048512, 2066400, 4129776, 4063728, 8126712, 8126712, 7864440, 16253052, 16253052, 15728700, 32505918, 32505918, 32505918, 32505918, 31457310, 65011743, 65011743, 65011743, 65011743, 65042463, 65076255, 65142303, 65142303, 65076255, 65076255, 65042463, 65011743, 65011743, 65011743, 31457310, 31457310, 32505918, 32505918, 32505918, 15728700, 16253052, 16253052, 16253052, 8126712, 8126712, 4063728, 4063728, 2032608, 2084832, 1048512, 524160, 261888, 130560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"1", 13, {62, 62, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"2", 26, {130560, 524160, 2097120, 4194288, 8388600, 16712700, 16515324, 33030270, 32505918, 32505918, 65011743, 65011743, 65011743, 31, 31, 31, 31, 31, 31, 31, 31, 30, 62, 62, 62, 62, 60, 124, 124, 124, 248, 248, 248, 496, 496, 992, 992, 1984, 4032, 3968, 8064, 16128, 32256, 65024, 130048, 522240, 1044480, 16769024, 67108863, 67108863, 67108863, 67108863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"3", 26, {64512, 524160, 1048512, 4194288, 4194288, 8324088, 16515324, 16253052, 33030270, 32505918, 65011743, 65011743, 65011743, 65011743, 31, 31, 31, 31, 62, 62, 126, 252, 508, 2040, 32752, 32736, 32736, 32752, 32760, 1016, 252, 126, 62, 62, 31, 31, 31, 31, 65011743, 65011743, 65011743, 65011743, 32505918, 32505918, 33030270, 16515324, 16646652, 8357880, 4194288, 2097120, 1048512, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"4", 26, {992, 992, 992, 2016, 2016, 4064, 8160, 16352, 16352, 32736, 65504, 130016, 130016, 259040, 517088, 508896, 1033184, 2065376, 4129760, 4129760, 8258528, 16516064, 33031136, 33031136, 67108863, 67108863, 67108863, 67108863, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"5", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 66846720, 67092480, 33552384, 33553920, 16776960, 262080, 16352, 4080, 1016, 504, 252, 126, 62, 62, 31, 31, 31, 31, 31, 31, 31, 63, 62, 126, 124, 252, 504, 2032, 4080, 32736, 524160, 33554176, 33553408, 33550336, 33521664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"6", 26, {31, 511, 2047, 8191, 32767, 65472, 261632, 522240, 1044480, 2080768, 2064384, 4128768, 8257536, 8126464, 16515072, 16252928, 33030144, 32505856, 32505856, 31457280, 65011712, 65011712, 65011712, 65273600, 65535872, 67108832, 67108848, 67078136, 66978296, 66846972, 66584700, 66060350, 66060350, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 32505918, 32505918, 16253052, 16515324, 8258040, 8357880, 4194288, 2097120, 524160, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"7", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 31, 62, 62, 124, 124, 248, 248, 496, 496, 992, 992, 2016, 1984, 4032, 3968, 8064, 7936, 16128, 15872, 32256, 31744, 64512, 63488, 129024, 126976, 258048, 253952, 516096, 507904, 1032192, 1015808, 2064384, 2031616, 4128768, 4063232, 8257536, 8126464, 16515072, 16252928, 33030144, 32505856, 66060288, 65011712, 65011712, 62914560, 62914560, 58720256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"8", 26, {64512, 524160, 1048512, 4194288, 4194288, 8324088, 16515324, 16253052, 33030270, 32505918, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 32505918, 32505918, 33030270, 16515324, 16646652, 8357880, 4194288, 2097120, 2097120, 4194288, 8388600, 8324088, 16515324, 33030270, 32505918, 32505918, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 32505918, 32505918, 33030270, 16515324, 16646652, 8357880, 4194288, 2097120, 1048512, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"9", 26, {64512, 524160, 1048512, 2097120, 4194288, 8324088, 16515324, 16253052, 33030270, 32505918, 32505918, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 32505919, 32505919, 33030271, 16253055, 16515327, 8324095, 4194303, 2097151, 1048543, 524191, 64543, 31, 31, 31, 62, 62, 62, 124, 124, 252, 504, 1008, 2032, 4064, 8128, 16256, 65280, 523776, 8387584, 67104768, 67092480, 67043328, 66584576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{":", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 127, 127, 127, 127, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 127, 127, 127, 127, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{";", 10, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 62, 127, 127, 127, 127, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 30, 30, 62, 62, 62, 60, 60, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"<", 16, {7, 15, 15, 31, 63, 62, 126, 124, 252, 504, 496, 1008, 992, 2016, 4032, 3968, 8064, 7936, 16128, 32256, 31744, 64512, 63488, 63488, 61440, 57344, 57344, 61440, 61440, 63488, 63488, 64512, 32256, 15872, 16128, 7936, 8064, 4032, 1984, 2016, 1008, 496, 504, 248, 252, 126, 62, 63, 31, 31, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"=", 16, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65535, 65535, 65535, 65535, 65535, 0, 0, 0, 0, 0, 65535, 65535, 65535, 65535, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{">", 16, {0, 0, 0, 0, 0, 0, 0, 0, 61440, 63488, 64512, 65024, 32256, 16128, 8064, 4032, 4064, 2032, 1008, 504, 252, 126, 63, 63, 31, 15, 7, 15, 31, 63, 126, 254, 508, 504, 1008, 2016, 4032, 8128, 16256, 16128, 32256, 64512, 63488, 61440, 61440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"?", 19, {3968, 16352, 32752, 65528, 65528, 129276, 127100, 254014, 254014, 254014, 507935, 507935, 507935, 507935, 507935, 31, 31, 31, 31, 31, 62, 62, 62, 124, 252, 1016, 1016, 1008, 992, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 3968, 0, 0, 0, 0, 1792, 3968, 8128, 8128, 8128, 8128, 3968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"@", 22, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64512, 261632, 261888, 524160, 1036160, 1017792, 2033600, 2035584, 2039680, 1982400, 4095968, 4095968, 4095456, 4094448, 4094448, 4094448, 4095456, 4095968, 4095968, 1982400, 2039680, 2035584, 2033632, 1017848, 1036284, 524286, 262015, 261695, 64543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"A", 26, {64512, 64512, 64512, 130560, 130560, 130560, 261888, 261888, 261888, 261888, 511872, 511872, 511872, 1017792, 1017792, 1017792, 2032608, 2032608, 2032608, 4063728, 4063728, 4063728, 8126712, 8126712, 8126712, 16515324, 16777212, 16777212, 16777212, 33554430, 33554430, 32505918, 65011743, 65011743, 65011743, 62914575, 62914575, 62914575, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"B", 26, {67092480, 67107840, 67108608, 67108736, 67108832, 65028080, 65013752, 65012220, 65011964, 65011838, 65011774, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011775, 65011774, 65011838, 65011964, 65012728, 65015800, 65044464, 67108800, 67108736, 67108608, 67108800, 67108832, 65019888, 65013752, 65012220, 65011964, 65011838, 65011774, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011774, 65011774, 65011838, 65011964, 65012728, 65015792, 65077216, 67108800, 67108736, 67108352, 67104768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"C", 24, {16128, 32640, 131040, 131040, 262128, 516600, 1032444, 1015932, 2031678, 2031678, 1966110, 4063262, 4063262, 3932172, 8126472, 8126472, 8126464, 8126464, 7864320, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 16252928, 7864320, 7864320, 8126464, 8126464, 8126472, 3932172, 4063260, 4063262, 4063263, 2031678, 2031678, 1015932, 1015932, 508152, 521208, 262128, 131040, 65472, 32640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"D", 26, {66846720, 67076096, 67100672, 67106816, 67107840, 65273344, 65044224, 65027968, 65015744, 65013728, 65012720, 65012720, 65012216, 65011960, 65011964, 65011836, 65011836, 65011774, 65011774, 65011774, 65011742, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011774, 65011774, 65011774, 65011774, 65011836, 65011836, 65011960, 65011960, 65012208, 65012720, 65013728, 65015776, 65019840, 65027968, 65076992, 66059776, 67107840, 67104768, 67092480, 67043328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"E", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 67108832, 67108832, 67108832, 67108832, 67108832, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 67108863, 67108863, 67108863, 67108863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"F", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 67108832, 67108832, 67108832, 67108832, 67108832, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"G", 26, {64512, 130560, 524160, 524160, 1048512, 2066400, 4129776, 4063728, 8126712, 8126712, 7864440, 16253048, 16253048, 15728688, 32505888, 32505888, 32505856, 32505856, 31457280, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65012735, 65012735, 65012735, 31458303, 31458303, 32505919, 32505919, 32505919, 15728703, 16253055, 16253055, 16253055, 8126719, 8126719, 4063743, 4063728, 2032608, 2084832, 1048512, 524160, 261888, 130560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"H", 26, {65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 67108863, 67108863, 67108863, 67108863, 67108863, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"I", 13, {127, 127, 127, 127, 127, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"J", 21, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 2031647, 2064447, 1040638, 1048574, 524284, 262128, 65504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"K", 26, {65011727, 65011743, 65011775, 65011839, 65011838, 65011964, 65012216, 65012720, 65013728, 65015744, 65019840, 65027968, 65044224, 65076736, 65141760, 65271808, 65531904, 66052096, 67092480, 67076096, 67043328, 66977792, 66846720, 66584576, 66060288, 66584576, 66584576, 66846720, 66977792, 67043328, 67076096, 67092480, 66043904, 65527808, 65269760, 65140736, 65076224, 65076736, 65043968, 65027840, 65019776, 65015744, 65013728, 65013744, 65012720, 65012216, 65011964, 65011838, 65011775, 65011775, 65011743, 65011727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"L", 26, {65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 67108863, 67108863, 67108863, 67108863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"M", 32, {4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4227858495UL, 4227858495UL, 4261412991UL, 4261412991UL, 4278190335UL, 4278190335UL, 4278190335UL, 4286579199UL, 4286579199UL, 4290774015UL, 4290774015UL, 4292872191UL, 4225763295UL, 4225763295UL, 4193259423UL, 4193259423UL, 4177010463UL, 4177010463UL, 4177280799UL, 4168891935UL, 4168891935UL, 4164844575UL, 4164844575UL, 4162844703UL, 4162844703UL, 4162844703UL, 4161794079UL, 4161794079UL, 4161265695UL, 4161265695UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"N", 26, {65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 66060319, 66060319, 66584607, 66584607, 66846751, 66846751, 66977823, 66977823, 67043359, 67043359, 67076127, 66027551, 66043935, 65519647, 65527839, 65265695, 65269791, 65138719, 65140767, 65075231, 65076255, 65043487, 65043999, 65027615, 65027871, 65019679, 65019807, 65015711, 65015775, 65013727, 65013759, 65012735, 65012735, 65012223, 65012223, 65011967, 65011967, 65011839, 65011839, 65011775, 65011775, 65011743, 65011743, 65011743, 65011743, 65011743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"O", 26, {64512, 130560, 524160, 524160, 1048512, 2066400, 4129776, 4063728, 8126712, 8126712, 7864440, 16253052, 16253052, 15728700, 32505918, 32505918, 32505918, 32505918, 31457310, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 31457310, 31457310, 32505918, 32505918, 32505918, 15728700, 16253052, 16253052, 16253052, 8126712, 8126712, 4063728, 4063728, 2032608, 2084832, 1048512, 524160, 261888, 130560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"P", 26, {67092480, 67107840, 67108608, 67108800, 67108832, 65019888, 65012728, 65011964, 65011838, 65011774, 65011775, 65011743, 65011743, 65011743, 65011743, 65011743, 65011774, 65011838, 65011964, 65012732, 65015800, 67108848, 67108800, 67108736, 67108352, 67100672, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Q", 23, {15872, 32640, 65472, 131040, 262112, 254960, 508400, 491768, 1015928, 983164, 2031740, 2031676, 1966142, 4063294, 4063294, 4063262, 4063263, 3932191, 3932191, 8126495, 8126495, 8126495, 8126495, 8126479, 8126479, 8126479, 8126479, 8126479, 8126479, 8126479, 8126495, 8126495, 8126495, 8126495, 3932191, 3932191, 4063262, 4063262, 4064190, 1967038, 2032638, 2032636, 984060, 1016828, 1016824, 508920, 508400, 259056, 262128, 131064, 65528, 16376, 124, 124, 124, 62, 62, 62, 31, 31, 31, 15, 15, 15, 7, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"R", 26, {67092480, 67107840, 67108608, 67108800, 67108832, 65019888, 65012728, 65011964, 65011838, 65011774, 65011775, 65011743, 65011743, 65011743, 65011743, 65011743, 65011774, 65011838, 65011964, 65012732, 65015800, 67108848, 67108800, 67108736, 67108352, 67100672, 65257472, 65257472, 65265664, 65269760, 65138688, 65140736, 65076224, 65043456, 65043968, 65027840, 65019648, 65019776, 65015744, 65013696, 65013728, 65012720, 65012208, 65012216, 65011964, 65011836, 65011838, 65011775, 65011743, 65011743, 65011727, 65011727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"S", 26, {64512, 524160, 1048512, 4194288, 4194288, 8324088, 16515324, 16253052, 33030270, 32505918, 65011743, 65011740, 65011712, 65011712, 65011712, 65011712, 65011712, 65011712, 32505856, 32505856, 33030144, 16515072, 16646144, 8355840, 4193792, 2097024, 1048544, 262128, 32760, 1016, 252, 126, 62, 62, 31, 31, 31, 31, 31, 31, 2097183, 31457311, 32505918, 32505918, 33030270, 16515324, 16646652, 8357880, 4194288, 2097120, 1048512, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"T", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"U", 26, {65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 32505918, 33030270, 16515324, 16746492, 8388600, 4194288, 1048512, 261888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"V", 26, {65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 65011743, 62914575, 65011743, 65011743, 65011743, 65011743, 32505918, 32505918, 32505918, 32505918, 16253052, 16253052, 16253052, 16253052, 8126712, 8126712, 8126712, 8126712, 4063728, 4063728, 4063728, 4063728, 2032608, 2032608, 2032608, 2032608, 1017792, 1017792, 1017792, 1017792, 511872, 511872, 511872, 511872, 261888, 261888, 261888, 261888, 130560, 130560, 130560, 130560, 64512, 64512, 64512, 64512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"W", 32, {4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 3758096391UL, 3758096391UL, 4026531855UL, 4026531855UL, 4026531855UL, 4026531855UL, 4026531855UL, 4026531855UL, 4026531855UL, 4026531855UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 4160749599UL, 2013265950, 2080374846, 2080890942, 2080890942, 2080890942, 2081419326, 2081419326, 2081419326, 1008728124, 1008728124, 1010826300, 1010727996, 1010727996, 1014775356, 1014775356, 1014775356, 486022968, 486022968, 502800312, 502271928, 502271928, 534775800, 534775800, 534775800, 532677624, 264242160, 264242160, 260047344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"X", 26, {58720263, 58720263, 62914575, 62914575, 65011743, 65011743, 32505918, 32505918, 16253052, 16253052, 8126712, 8126712, 4063728, 4063728, 2032608, 2032608, 2066400, 1017792, 1036224, 511872, 524160, 261888, 261888, 130560, 130560, 64512, 64512, 64512, 130560, 130560, 261888, 261888, 524160, 511872, 1036224, 1017792, 2066400, 2032608, 4129776, 4063728, 8258040, 8126712, 16515324, 16253052, 33030270, 32505918, 66060351, 65011743, 65011743, 62914575, 62914575, 58720263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Y", 26, {58720263, 62914575, 62914575, 65011743, 65011743, 66060351, 32505918, 33030270, 16253052, 16515324, 8126712, 4063728, 4129776, 2032608, 2066400, 1017792, 1036224, 511872, 524160, 261888, 261888, 130560, 64512, 64512, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 30720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"Z", 26, {67108863, 67108863, 67108863, 67108863, 67108863, 31, 62, 62, 124, 124, 248, 248, 496, 496, 992, 992, 2016, 1984, 4032, 3968, 8064, 7936, 16128, 15872, 32256, 31744, 64512, 63488, 129024, 126976, 258048, 253952, 516096, 507904, 1032192, 1015808, 2064384, 2031616, 4128768, 4063232, 8257536, 8126464, 16515072, 16252928, 33030144, 32505856, 66060288, 65011712, 67108863, 67108863, 67108863, 67108863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"[", 13, {1023, 1023, 1023, 1023, 1023, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 1023, 1023, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"\\", 16, {57344, 57344, 57344, 61440, 61440, 61440, 61440, 63488, 63488, 63488, 31744, 31744, 31744, 15872, 15872, 15872, 7936, 7936, 7936, 7936, 3968, 3968, 3968, 1984, 1984, 1984, 992, 992, 992, 992, 496, 496, 496, 248, 248, 248, 124, 124, 124, 62, 62, 62, 62, 31, 31, 31, 15, 15, 15, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"]", 13, {1023, 1023, 1023, 1023, 1023, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 1023, 1023, 1023, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"^", 16, {2016, 2016, 2016, 4080, 4080, 4080, 8184, 8184, 16380, 15996, 15996, 31806, 31806, 31806, 63519, 63519, 63519, 61455, 61455, 61455, 57351, 57351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"_", 22, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4194303, 4194303, 4194303, 4194303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"`", 14, {448, 448, 448, 480, 480, 496, 496, 504, 248, 248, 124, 124, 126, 62, 62, 31, 31, 15, 15, 15, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"a", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16383, 16383, 8191, 4095, 2303, 63, 31, 31, 31, 31, 31, 8159, 32767, 65535, 131071, 262143, 258175, 516159, 507935, 507935, 507935, 507935, 507935, 254015, 260351, 131071, 65535, 32767, 16383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"b", 19, {507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 516032, 524256, 524272, 524280, 523772, 520316, 520318, 516158, 516158, 507934, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507934, 516158, 516158, 520318, 520316, 523772, 524280, 524272, 524256, 516032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"c", 18, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4064, 8176, 16376, 32764, 65278, 63550, 129087, 127006, 127004, 122888, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 122888, 127004, 127006, 129087, 63550, 65278, 32764, 16376, 8176, 4064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"d", 19, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 8159, 16383, 32767, 65535, 130559, 127103, 258175, 254015, 254015, 245791, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 245791, 254015, 254015, 258175, 127103, 130559, 65535, 32767, 16383, 8159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"e", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8128, 16352, 32752, 65528, 130556, 127100, 258174, 254014, 254014, 245790, 507935, 507935, 524287, 524287, 524287, 524287, 524287, 507904, 507904, 245776, 254008, 254012, 258174, 127100, 130556, 65528, 32752, 16352, 8128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"f", 18, {1984, 8176, 16376, 32764, 65534, 129087, 127007, 127004, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 262136, 262136, 262136, 262136, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 253952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"g", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8159, 16383, 32767, 65535, 130559, 127103, 258175, 254015, 254015, 245791, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 245791, 254015, 254015, 258175, 127103, 130559, 65535, 32767, 16383, 8159, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 62, 62, 4222, 8188, 16376, 32752, 16352, 3968, } },
	{"h", 19, {507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 524256, 524280, 524284, 524286, 522494, 516159, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"i", 10, {0, 0, 0, 0, 0, 0, 0, 0, 62, 127, 127, 127, 127, 62, 28, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"j", 18, {0, 0, 0, 0, 0, 0, 0, 0, 62, 126, 127, 127, 127, 126, 28, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 60, 124, 124, 6392, 16376, 16368, 32752, 16320, 3968, } },
	{"k", 19, {507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507935, 507967, 508159, 508414, 508924, 509936, 516064, 524224, 524032, 523776, 523264, 522240, 516096, 507904, 507904, 507904, 516096, 522240, 523264, 523776, 524032, 524224, 516064, 509936, 508924, 508414, 508159, 507967, 507935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"l", 9, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"m", 26, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67096560, 67108860, 67108860, 67108862, 66715263, 65076255, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 65042463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"n", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524256, 524280, 524284, 524286, 522494, 516159, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"o", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8128, 16352, 32752, 65528, 130556, 127100, 258174, 254014, 254014, 245790, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 245790, 254014, 254014, 258174, 127100, 130556, 65528, 32752, 16352, 8128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"p", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516032, 524256, 524272, 524280, 523772, 520316, 520318, 516158, 516158, 507934, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507934, 516158, 516158, 520318, 520316, 523772, 524280, 524272, 524256, 516032, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, } },
	{"q", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8159, 16383, 32767, 65535, 130559, 127103, 258175, 254015, 254015, 245791, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 245791, 254015, 254015, 258175, 127103, 130559, 65535, 32767, 16383, 8159, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, } },
	{"r", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524256, 524280, 524284, 524286, 522494, 516159, 507935, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"s", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16352, 65528, 131068, 131068, 260350, 516159, 507928, 507904, 507904, 507904, 516096, 258048, 262016, 131056, 65528, 32764, 4094, 126, 63, 31, 31, 31, 49183, 516159, 260350, 131068, 131068, 65528, 16352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"t", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 524272, 524272, 524272, 524272, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31744, 31772, 32383, 16382, 16380, 8188, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"u", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 516159, 260351, 262143, 131071, 65535, 16383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"v", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 507935, 254014, 254014, 254014, 127100, 127100, 127100, 63736, 63736, 63736, 32240, 32240, 32240, 32752, 16352, 16352, 16352, 8128, 8128, 8128, 3968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"w", 26, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65076255, 65076255, 65076255, 65076255, 65142303, 65142303, 65142303, 63045135, 63045135, 65273631, 65273631, 65273631, 65273631, 32755518, 33017790, 33017790, 33017790, 33017790, 16746492, 16746492, 16746492, 16746492, 8324088, 8324088, 8324088, 8324088, 8324088, 4063728, 4063728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"x", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458759, 491535, 507935, 507935, 516159, 258174, 127100, 129276, 65016, 65016, 32752, 16352, 16352, 8128, 3968, 8128, 16352, 16352, 32752, 65016, 65016, 129276, 127100, 258174, 516159, 507935, 507935, 491535, 458759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"y", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458783, 491551, 491551, 491551, 507935, 507935, 516127, 253967, 258063, 126991, 129055, 63519, 63519, 31775, 31775, 32318, 15934, 16190, 7998, 8126, 4028, 4028, 2044, 2044, 2044, 1016, 1016, 504, 504, 480, 480, 480, 480, 992, 992, 992, 992, 992, 992, 960, 1984, 1984, 1920, 3968, 3968, 7936, 16128, 130560, 130048, 129024, 126976, 253952, } },
	{"z", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524287, 524287, 524287, 524287, 63, 126, 124, 252, 504, 504, 1008, 992, 2016, 4032, 3968, 8064, 16128, 15872, 32256, 64512, 64512, 129024, 126976, 258048, 516096, 524287, 524287, 524287, 524287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"{", 12, {7, 15, 31, 63, 63, 124, 124, 120, 120, 248, 248, 248, 248, 248, 248, 248, 248, 240, 224, 240, 496, 496, 1008, 992, 960, 896, 896, 960, 992, 1008, 1008, 496, 240, 240, 224, 240, 248, 248, 248, 248, 248, 248, 248, 120, 120, 124, 124, 61, 63, 31, 31, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"|", 9, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"}", 14, {896, 960, 992, 1008, 1008, 248, 248, 120, 120, 124, 124, 124, 124, 124, 124, 124, 124, 60, 28, 60, 62, 62, 63, 31, 15, 7, 7, 15, 31, 63, 63, 62, 60, 60, 28, 60, 124, 124, 124, 124, 124, 124, 124, 120, 120, 248, 248, 752, 1008, 992, 992, 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	{"~", 19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30720, 130560, 130560, 261888, 524032, 511872, 511872, 3999, 3999, 3999, 2047, 2046, 1020, 1020, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } },
	};
const int NumOutlines75 = sizeof (Outlines75)/sizeof (Outlines75 [0] );
const int Height75
	= sizeof (Outlines75 [0].rows)/sizeof (Outlines75 [0].rows [0] );

int FindRows75 (
		const unsigned long int * * RowsPtr,
		int * WidthPtr)
	{
	int i, j, position;
	int c;

	RowsPtr [0] = NULL;
	c = getchar ();
	while (c == ' ')
		c = getchar ();
	position = 0;
	i = 0;
	while (c != EOF && c != '\n' && c != ' ' && i < NumOutlines75) {
		j = i;
		while (j < NumOutlines75
				&& ((position > 0
				&& (strlen (Outlines75 [j].title)
						<= position
				|| memcmp (Outlines75 [i].title,
				Outlines75 [j].title, position) != 0) )
				|| Outlines75 [j].title [position] != c)
				)
			j++;
		if (j >= NumOutlines75) {
			fprintf (stderr, "***lettertopbm1: Cannot find \"");
			if (position > 0)
				fwrite (Outlines75 [i].title,
						position, 1, stderr);
			while (c != EOF && c != '\n' && c != ' ') {
				fputc (c, stderr);
				c = getchar ();
				}
			fprintf (stderr, "\" in height %d.\n", Height75);
			}
		i = j;
		position++;
		c = getchar ();
		}
	if (i < NumOutlines75) {
		j = i;
		while (j < NumOutlines75
				&& ((position > 0
				&& (strlen (Outlines75 [j].title)
						< position
				|| memcmp (Outlines75 [i].title,
				Outlines75 [j].title, position) != 0) )
				|| Outlines75 [j].title [position] != '\0')
				)
			j++;
		if (j >= NumOutlines75) {
			fprintf (stderr, "***lettertopbm: Cannot find \"");
			if (position > 0)
				fwrite (Outlines75 [i].title,
						position, 1, stderr);
			fprintf (stderr, "\" in height %d.\n", Height75);
			}
		i = j;
		}
	if (i < NumOutlines75) {
		WidthPtr [0] = Outlines75 [i].width;
		RowsPtr [0] = Outlines75 [i].rows;
		}
	return c;
	}


struct Letter {
	int bottom;
	int left;
	int right;
	int top;
	int orientation;
	const unsigned long int * rows;
	struct Letter * next;
	};


struct Letter * ReadPositionLines (void)
	{
	struct Letter * Letters, * * LetterPtr;
	const unsigned long int * rows;
	unsigned long int LineNum;
	int IsNegative, IsEmpty, FoundHeight, FoundRows;
	int c, across, down, orientation, width, height;

	Letters = NULL;
	LetterPtr = & Letters;
	LineNum = 0;
	c = getchar ();
	while (c != EOF) {
		LineNum++;
		while (c == ' ')
			c = getchar ();
		IsNegative = 0;
		if (c == '-')
			IsNegative = 1;
		if (c == '+' || c == '-')
			c = getchar ();
		IsEmpty = 1;
		across = 0;
		while (c >= '0' && c <= '9') {
			IsEmpty = 0;
			across = 10*across + (c - '0');
			c = getchar ();
			}
		if (IsNegative)
			across = - across;
		while (c == ' ')
			c = getchar ();
		IsNegative = 0;
		if (c == '-')
			IsNegative = 1;
		if (c == '+' || c == '-')
			c = getchar ();
		down = 0;
		while (c >= '0' && c <= '9') {
			down = 10*down + (c - '0');
			c = getchar ();
			}
		if (IsNegative)
			down = - down;
		while (c == ' ')
			c = getchar ();
		IsNegative = 0;
		if (c == '-')
			IsNegative = 1;
		if (c == '+' || c == '-')
			c = getchar ();
		orientation = 0;
		while (c >= '0' && c <= '9') {
			orientation = 10*orientation + (c - '0');
			c = getchar ();
			}
		if (IsNegative)
			orientation = - orientation;
		while (c == ' ')
			c = getchar ();
		IsNegative = 0;
		if (c == '-')
			IsNegative = 1;
		if (c == '+' || c == '-')
			c = getchar ();
		FoundHeight = 0;
		height = 0;
		while (c >= '0' && c <= '9') {
			FoundHeight = 1;
			height = 10*height + (c - '0');
			c = getchar ();
			}
		if (IsNegative)
			height = - height;
		FoundRows = 0;
		if (FoundHeight && c == ' ') {
			FoundRows = 1;
			rows = NULL;
			if (height == Height07)
				c = FindRows07 (& rows, & width);
			else if (height == Height12)
				c = FindRows12 (& rows, & width);
			else if (height == Height18)
				c = FindRows18 (& rows, & width);
			else if (height == Height22)
				c = FindRows22 (& rows, & width);
			else if (height == Height28)
				c = FindRows28 (& rows, & width);
			else if (height == Height37)
				c = FindRows37 (& rows, & width);
			else if (height == Height59)
				c = FindRows59 (& rows, & width);
			else if (height == Height75)
				c = FindRows75 (& rows, & width);
			else {
				fprintf (stderr, "***lettertopbm:");
				fprintf (stderr, " height of %d", height);
				fprintf (stderr, " not found in line");
				fprintf (stderr, " %lu.\n", LineNum);
				while (c == ' ')
					c = getchar ();
				while (c != EOF && c != '\n' && c != ' ')
					c = getchar ();
				}
			if (orientation >= 0 && orientation <= 3
						&& rows != NULL) {
				LetterPtr [0] = malloc (
					sizeof (LetterPtr [0] [0] ) );
				if (LetterPtr [0] == NULL) {
					fprintf (stderr, "***lettertopbm:");
					fprintf (stderr, " Not enough");
					fprintf (stderr, " memory.\n");
					}	
				else {
					if (orientation%2 == 0) {
						LetterPtr [0]->bottom
						= down + height - height/2;
						LetterPtr [0]->left
						= across - width/2;
						LetterPtr [0]->right
						= across + width - width/2;
						LetterPtr [0]->top
						= down - height/2;
						}
					else {
						LetterPtr [0]->bottom
						= down + width - width/2;
						LetterPtr [0]->left
						= across - height/2;
						LetterPtr [0]->right
						= across + height - height/2;
						LetterPtr [0]->top
						= down - width/2;
						}
					LetterPtr [0]->orientation
							= orientation;
					LetterPtr [0]->rows = rows;
					LetterPtr [0]->next = NULL;
					LetterPtr = & LetterPtr [0]->next;
					}
				}
			}
		while (c == ' ')
			c = getchar ();
		if (c != EOF && c != '\n' && c != '#') {
			fprintf (stderr, "***lettertopbm: Found improper");
			fprintf (stderr, " '%c' in line", c);
			fprintf (stderr, " %lu.\n", LineNum);
			}
		else if (!IsEmpty && !FoundRows) {
			fprintf (stderr, "***lettertopbm: Incomplete data");
			fprintf (stderr, " in line %lu.\n", LineNum);
			}
		while (c != EOF && c != '\n')
			c = getchar ();
		if (c != EOF)
			c = getchar ();
		}
	return Letters;
	}


void WriteLetters (struct Letter * Letters, int width, int height)
	{
	struct Letter * Letter;
	int across, down, row, column;
	int OutputWeight, OutputValue, IsDark;

	printf ("P4\n");
	printf ("%d %d\n", width, height);
	for (down = - height/2; down < height - height/2; down++) {
		OutputWeight = 128;
		OutputValue = 0;
		for (across = - width/2; across < width - width/2; across++) {
			IsDark = 0;
			Letter = Letters;
			while (Letter != NULL) {
				if (
						down < Letter->bottom
						&& across >= Letter->left
						&& across < Letter->right
						&& down >= Letter->top) {
					if (Letter->orientation == 0) {
						row = down
							- Letter->top;
						column = Letter->right
							- across - 1;
						}
					else if (Letter->orientation == 1) {
						row = Letter->right
							- across - 1;
						column = Letter->bottom
							- down - 1;
						}
					else if (Letter->orientation == 2) {
						row = Letter->bottom
							- down - 1;
						column = across
							- Letter->left;
						}
					else if (Letter->orientation == 3) {
						row = across
							- Letter->left;
						column = down
							- Letter->top;
						}
					if ((Letter->rows [row] >> column)
							%2 == 1)
						IsDark = 1;
					}
				Letter = Letter->next;
				}
			if (IsDark)
				OutputValue += OutputWeight;
			OutputWeight /= 2;
			if (OutputWeight == 0) {
				putchar (OutputValue);
				OutputWeight = 128;
				OutputValue = 0;
				}
			}
		if (OutputWeight < 128)
			putchar (OutputValue);
		}
	}


void CloseLetters (struct Letter * Letters)
	{
	struct Letter * Letter, * NextLetter;

	Letter = Letters;
	while (Letter != NULL) {
		NextLetter = Letter->next;
		free (Letter);
		Letter = NextLetter;
		}
	}


int main (int argc, char * argv [] )
	{
	struct Letter * Letters;
	int i, width, height;

	if (argc < 2) {
		for (i = 0; i < NumUsageLines; i++)
			printf ("%s\n", UsageLines [i] );
		printf ("Available heights are:");
		printf (" %d,", Height07);
		printf (" %d,", Height12);
		printf (" %d,", Height18);
		printf (" %d,", Height22);
		printf (" %d,", Height28);
		printf (" %d,", Height37);
		printf (" %d,", Height59);
		printf (" %d.\n", Height75);
		}
	else if (argc == 3 && sscanf (argv [1], "%d", & width) == 1
			&& width > 0
			&& sscanf (argv [2], "%d", & height) == 1
			&& height > 0) {
		Letters = ReadPositionLines ();
		WriteLetters (Letters, width, height);
		CloseLetters (Letters);
		}
	else
		fprintf (stderr, "Usage: lettertobm (width) (height)\n");
	return 0;
	}