import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class congruence extends Applet implements Runnable{

   int td[][] = new int[16][20];
   int pb[][][] = {{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,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,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
                    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {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,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,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,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
                    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,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,0,0}}};
   int an[][][] = {{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,1,-1,-1,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,-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,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,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,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,1,-1,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,1,-1,-1,-1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,-1,-1,-1,-1,-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,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0},
                    {0,0,0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0},
                    {0,0,0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0},
                    {0,0,0,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0},
                    {0,0,0,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0},
                    {0,0,0,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    {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,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,0,0}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
                    {0,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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}},
                   {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,-1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,1,1,-1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,-1,1,-1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,1,1,-1,1,-1,1,-1,0,0,0,0,0,0,0,0,0,0},
                    {0,0,0,0,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,0,0,0},
                    {0,0,0,0,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0},
                    {0,0,0,0,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-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,0,0}}};
   int as[] = {12,28,126,114,162,120};
   int pn = 0,ch;
   int px,py;
   Choice cho = new Choice();
   Thread th = null;
   Image os;
   Graphics og;

   public void init(){
      os = createImage(400,320);
      og = os.getGraphics();
      cho.addItem("  NO.1  ");
      cho.addItem("  NO.2  ");
      cho.addItem("  NO.3  ");
      cho.addItem("  NO.4  ");
      cho.addItem("  NO.5  ");
      cho.addItem("  NO.6  ");
      cho.addItemListener(new MyListener());
      add(cho);
      p_set();
      addMouseListener(
         new MouseAdapter(){
            public void mousePressed(MouseEvent e){
               px = e.getX() / 20;
               py = e.getY() / 20;
               td[py][px] = -1 * td[py][px];
               repaint();
            }
         }
      );
   }

   class MyListener implements ItemListener{
      public void itemStateChanged(ItemEvent e){
         Choice cho = (Choice)e.getSource();
         switch(cho.getSelectedIndex()){
            case 0 : pn = 0 ; break;
            case 1 : pn = 1 ; break;
            case 2 : pn = 2 ; break;
            case 3 : pn = 3 ; break;
            case 4 : pn = 4 ; break;
            case 5 : pn = 5 ; break;
         }
         p_set();
         repaint();
      }
   }

   public void paint(Graphics g){
      og.setColor(Color.white);
      og.fillRect(0,0,400,320);

      for(int t1 = 0;t1 < 20;t1 ++){
         for(int t2 = 0;t2 < 16;t2 ++){
            if(td[t2][t1] != 0){
               if(td[t2][t1] == 1){
                  og.setColor(new Color(173,255,047));
               }else if(td[t2][t1] == -1){
                  og.setColor(new Color(255,020,147));
               }
               og.fill3DRect(20*t1,20*t2,20,20,true);
            }
         }
      }
      ch = 0;
      for(int t1 = 0;t1 < 20;t1 ++){
         for(int t2 = 0;t2 < 16;t2 ++){
            if(td[t2][t1] != 0){
               ch = ch + td[t2][t1]*an[pn][t2][t1];
            }
         }
      }
      if(ch == as[pn] || ch == -1 * as[pn]){
         og.setColor(Color.white);
         og.fillRect(150,230,100,35);
         og.setColor(Color.red);
         og.drawRect(150,230,100,35);
         og.drawRect(152,232,96,31);
         og.setFont(new Font("",Font.PLAIN,36));
         og.drawString("clear",160,260);
      }
      g.drawImage(os,0,0,this);
   }

   public void p_set(){
      for(int t1 = 0;t1 < 20;t1 ++){
         for(int t2 = 0;t2 < 16;t2 ++){
            td[t2][t1] = pb[pn][t2][t1];
         }
      }
   }

   public void start(){
      if(th == null){
         th = new Thread(this);
         th.start();
      }
   }

   public void stop(){
      th =  null;
   }

   public void run(){
      while(th != null){
         try{
            Thread.sleep(100);
         }
         catch (InterruptedException e){
         }
      }
   }

   public void update( Graphics g ){
      paint( g ) ;
   }
}