import java.io.*;
import java.util.*;
import java.net.*;
//_____________________________________________________________
public class try32
{ 
   int letters = 28;
   String allletters = "BRAJYO BRA ALHYM AO HJMYM VAO HARE".replace(" ","");
   String[] allargs = "BRAJYO BRA ALHYM AO HJMYM VAO HARE".split(" ");
   int vb = 7;
   static String out = "";
   StringBuffer bufout = new StringBuffer();
   static String show = "";
   boolean[] ok = new boolean[100];
//_____________________________________________________________
public static final void main(String[] args) throws Exception
{
   try32 bnk = new try32();
   bnk.start(args);
}
//_____________________________________________________________
try32() throws Exception 
{
}
//___________________________________________________________________________
void start(String[] args)
{
   long t1 = System.nanoTime();
   boolean dofile = false;
   if (args.length > 0) dofile = true;
   start2(dofile);
   long t2 = System.nanoTime();
   System.out.println("seconds = " + ((t2-t1)/1e9));
}

//___________________________________________________________________________
void start2(boolean dofile)
{
   int count = 0;
   for (int i = 0; i < ok.length; i++)
   {
      ok[i] = false;
   }
   String file = "BRAJYO BRA ALHYM AO HJMYM VAO HARE";
   System.out.println(look(file));
   String[] out = new String[0];
   if (dofile)
   {
      String[] file2 = getFile("full.txt").toLowerCase().split(" ");
      String out2 = getlist(file2);
      out = out2.split("\r\n");
   }
   else
   {
      out = getFile("first.txt").toLowerCase().split("\r\n");
   }
   for (int i = 0; i < out.length; i++)
   {
      if (count++ > 100000)
      {
         System.out.print(".");
         count = 0;
      }
      if (look(out[i]))
      {
         System.out.println("true");
       }
   }
   System.out.println("false");
}
//___________________________________________________________________________
String getlist(String[] file)
{
   HashMap hash = new HashMap();
   int hashpos = 0;
   int count = 0;
   int count2 = 0;
   int count3 = 0;
   int count4 = 0;
   int count5 = 0;
   StringBuffer bufout = new StringBuffer();
   StringBuffer buf1 = new StringBuffer();
   int length = 7;
   for (int i = 0; i <= file.length - length; i+=7)
   {
      
      count++;
      if (count > 100000)
      {
         System.out.print(".");
         count = 0;
      }
      buf1 = new StringBuffer();
      for (int j = 0; j < length; j++)
      {
         if (j > 0) buf1.append(" ");
         String st = file[i+j];
         buf1.append(clean(st));
      }
      String str = buf1.toString().trim().replace("  "," ");
      bufout.append(str + "\r\n");
   }
   return(bufout.toString());
   
}
//_____________________________________________________________________________
boolean look(String str)
{
      allletters = str.replace(" ","");
      allargs = str.split(" ");
      letters = allletters.length();
   {
      boolean good = true;
      if ((letters > 3) & (allargs.length == 7))
      {
         //count3++;
         if (check13() > 0) good = false;
         if (good) if (check14() > 0) good = false;
         if (good) if (check15() > 0) good = false;
         if (good) if (check16() > 0) good = false;
         if (good) if (check17() > 0) good = false;
         if (good) if (check18() > 0) good = false;
         if (good) if (check19() > 0) good = false;
         if (good) if (check20() > 0) good = false;
         if (good) if (check21() > 0) good = false;
         if (good) if (check25() > 0) good = false;
         if (good) if (check29() > 0) good = false;
         if (good)
         {
            int adj = getadj(str);
            if (adj < 7) good = false;
         }
         if (good) if (getfour(str).equals("")) good = false;
         if (good) 
         {
            System.out.println(str);
            return(true);
         }
      }
   }
   return(false);
}
//___________________________________________________________________________
int digitsval(int vv)
{
   String str = Integer.toString(vv);
   int total = 0;
   for (int i = 0; i < str.length(); i++)
   {
      String s = str.substring(i,i+1);
      int v = Integer.parseInt(s);
      total += v;
   }
   return(total);
}
//___________________________________________________________________________
String nonzero(String str)
{
   StringBuffer buf = new StringBuffer();
   byte[] bb = str.getBytes();
   for (int i = 0; i < bb.length; i++)
   {
      if ((bb[i] >= '1') & (bb[i] <= '9')) buf.append((char)bb[i]);  
   }
   return(buf.toString());
}
//___________________________________________________________________________
String clean(String str)
{
   String st = str;
   byte[] str2 = str.getBytes();
   StringBuffer buf = new StringBuffer();
   for (int i = 0; i < str2.length; i++)
   {
      if ((str2[i] >= 'a') & (str2[i] <= 'z') | (str2[i] >= 'A') & (str2[i] <= 'Z'))
      {
         buf.append((char)str2[i]);
      }
   }
   String out = buf.toString();
   if (out.length() > 7) out = out.substring(0,7);
   return(out);
}
//___________________________________________________________________________
int check13()
{
   int avgletters = letters / 2;
   int val = value(allletters.substring(0,1));
   val += value(allletters.substring(avgletters-1,avgletters));
   if (val % vb == 0) return(-1); 
   return(13);
}
//___________________________________________________________________________
int check14()
{
   int avgletters = letters / 2;
   int val = value(allletters.substring(avgletters,avgletters+1));
   val += value(allletters.substring(allletters.length()-1,allletters.length()));
   if (val % vb == 0) return(-1);  
   return(14);
}
//___________________________________________________________________________
int check15()
{
   int avgletters = letters / 2;
   int val = value(allletters.substring(0,1));
   val += value(allletters.substring(avgletters,avgletters+1));
   val = value(allletters.substring(avgletters+1,avgletters+2));
   val += value(allletters.substring(allletters.length()-1,allletters.length()));
   if (val % vb == 0) return(-1); 
   else return(15);
}
//___________________________________________________________________________
int check16()
{ 
   if (allargs[0].length() < 1) allargs[0] = "a";
   int val = value(allargs[0].substring(0,1));
   val += value(allargs[allargs.length-1].substring(0,1));
   if (val % vb == 0) return(-1); 
   return(16);
}
//___________________________________________________________________________
int check17()
{
   int val = value(allargs[0].substring(allargs[0].length()-1,allargs[0].length()));
   String s = allargs[allargs.length-1];
   val += value(s.substring(s.length()-1,s.length()));
   if (val % vb == 0) return(-1); 
   return(17);
}
//___________________________________________________________________________
int check18()
{   
   String s = allargs[allargs.length-1];
   int val = value(allargs[0].substring(0,1));
   val += value(allargs[allargs.length-1].substring(0,1));
   val += value(allargs[0].substring(allargs[0].length()-1,allargs[0].length()));
   val += value(s.substring(s.length()-1,s.length()));
   if (val % vb == 0) return(-1); 
   return(18);
}
//___________________________________________________________________________
int check19()
{
   int val = 0;
   for (int i = 1; i < allargs.length - 1; i++)
   {
      if (allargs[i].length() > 0)
      {
         val += value(allargs[i].substring(0,1));
         val += value(allargs[i].substring(allargs[i].length()-1,allargs[i].length()));
      }
      else return(19);
   }
   if (val % vb == 0) return(-1); 
   return(19);
}
//___________________________________________________________________________
int check20()
{
   int val = 0;
   for (int i = 0; i < allargs.length; i++)
   {
      if (allargs[i].length() > 0)
      {
         val += value(allargs[i].substring(0,1));
         val += value(allargs[i].substring(allargs[i].length()-1,allargs[i].length()));
      }
      else return(20);
   }
   if (val % vb == 0) return(-1); 
   return(20);
}


//___________________________________________________________________________
int check21()
{
   for (int i = 0; i < 100; i++)
   {
      ok[i] = false;
   }
   int pla = 0;
   int odd = 0;
   int even = 0;
   int order = 0;
   String three = "";
   if (allargs.length >= 3)
   {
      pla += place(allargs[0]);
      pla += place(allargs[1]);
      pla += place(allargs[2]);
      three = allargs[0] + allargs[1] + allargs[2];
      for (int i = 0; i < three.length(); i++)
      {
         String s2 = three.substring(i,i+1);
         int pl = place(s2);
         if (pl % 2 == 0) even += pl;
         else odd += pl;
         order += (i+1) * pl;
      }
   }

//System.out.println((pla%vb) + " " + (odd%vb) + " " + (even%vb) + " " + (order%vb));

   if (pla % vb == 0) ok[21] = true;
   if (odd % vb == 0) ok[22] = true;
   if (even % vb == 0) ok[23] = true; 
   if (order % vb == 0) ok[24] = true;
   if (ok[21] & ok[22] & ok[23] & ok[24]) return(-1);
//System.out.println("failed");
   return(21);
}
//___________________________________________________________________________
int check25()
{  
   for (int i = 0; i < 100; i++)
   {
      ok[i] = false;
   }
   if (allargs.length >= 3)
   {
      int dgtval = 0;
      int dgtpla = 0;
      int dgtcnt = 0;
      String s4 = "";
      if (digitsval(value(allargs[2])) % vb == 0) ok[25] = true;;
      for (int i = 0; i < allargs[2].length(); i++)
      {
         String s3 = allargs[2].substring(i,i+1);
         dgtval += digitsval(value(s3));
         dgtpla += digitsval(place(s3));
         s4 += nonzero(Integer.toString(place(s3)));
      }
      if (dgtval % vb == 0) ok[26] = true;
      if (dgtpla % vb == 0) ok[27] = true;
      if (s4.length() % vb == 0) ok[28] = true;
      if (ok[25] & ok[26] & ok[27] & ok[28]) return(-1);
   }
   return(25);
}
//___________________________________________________________________________
int check29()
{
   int plustimes = 0;
   int timesplus = 0;
   int timesover = 0;
   int timestimes = 0;
   int k = 0;
   for (int i = 0; i < allargs.length; i++)
   {
      for (int j = 0; j < allargs[i].length(); j++)
      {
         k++;
         String s5 = allargs[i].substring(j,j+1);
         int pla = place(s5);
         int val = value(s5);
         plustimes += (j+1) + (val * pla);
         timesplus += (j+1) * (val + pla);
         timesover += (j+1) * (val / pla);
         timestimes = k * (val * pla);
      }
   }
   if (plustimes % vb == 0) ok[29] = true;
   if (timesplus % vb == 0) ok[30] = true;
   if (timesover % vb == 0) ok[31] = true;
   if (timestimes % vb == 0) ok[32] = true;
   if (ok[29] & ok[30] & ok[31] & ok[32]) return(-1);
   return(29);
}


//__________________________________________________
public static int value(String str)
{
   int total = 0;
   out = "";
   for (int i = 0; i < str.length(); i++)
   {
      int v = 0;
      String st2 = str.substring(i,i+1);
      byte[] st3 = st2.getBytes();
      byte st = st3[0];
      if (st == 'a') v = 1;
      else if (st == 'b') v = 2;
      else if (st == 'c') v = 3;
      else if (st == 'd') v = 4;
      else if (st == 'e') v = 5;
      else if (st == 'f') v = 6;
      else if (st == 'g') v = 7;
      else if (st == 'h') v = 8;
      else if (st == 'i') v = 9;
      else if (st == 'j') v = 10;
      else if (st == 'k') v = 20;
      else if (st == 'l') v = 30;    
      else if (st == 'm') v = 40;
      else if (st == 'n') v = 50;
      else if (st == 'o') v = 60;
      else if (st == 'p') v = 70;
      else if (st == 'q') v = 80;
      else if (st == 'r') v = 90;
      else if (st == 's') v = 100;
      else if (st == 't') v = 200;
      else if (st == 'u') v = 300;
      else if (st == 'v') v = 400;
      else if (st == 'w') v = 500;
      else if (st == 'x') v = 600;
      else if (st == 'y') v = 700;
      else if (st == 'z') v = 800;
      else if (st == 'A') v = 1;
      else if (st == 'B') v = 2;
      else if (st == 'G') v = 3;
      else if (st == 'D') v = 4;
      else if (st == 'H') v = 5;
      else if (st == 'V') v = 6;
      else if (st == 'Z') v = 7;
      else if (st == 'C') v = 8;
      else if (st == 'T') v = 9;
      else if (st == 'Y') v = 10;
      else if (st == 'K') v = 20;
      else if (st == 'L') v = 30;
      else if (st == 'M') v = 40;
      else if (st == 'N') v = 50;
      else if (st == 'S') v = 60;
      else if (st == 'I') v = 70;
      else if (st == 'F') v = 80;
      else if (st == 'E') v = 90;
      else if (st == 'Q') v = 100;
      else if (st == 'R') v = 200;
      else if (st == 'J') v = 300;
      else if (st == 'O') v = 400;
      total += v;
      if (i > 0) out += " + ";
      out += Integer.toString(v);
   }
   return(total);
}
//__________________________________________________
public static int place(String str)
{
   int total = 0;
   out = "";
   for (int i = 0; i < str.length(); i++)
   {
      int v = 0;
      String st2 = str.substring(i,i+1);
      byte[] st3 = st2.getBytes();
      byte st = st3[0];
      if (st == 'a') v = 1;
      else if (st == 'b') v = 2;
      else if (st == 'c') v = 3;
      else if (st == 'd') v = 4;
      else if (st == 'e') v = 5;
      else if (st == 'f') v = 6;
      else if (st == 'g') v = 7;
      else if (st == 'h') v = 8;
      else if (st == 'i') v = 9;
      else if (st == 'j') v = 10;
      else if (st == 'k') v = 11;
      else if (st == 'l') v = 12;    
      else if (st == 'm') v = 13;
      else if (st == 'n') v = 14;
      else if (st == 'o') v = 15;
      else if (st == 'p') v = 16;
      else if (st == 'q') v = 17;
      else if (st == 'r') v = 18;
      else if (st == 's') v = 19;
      else if (st == 't') v = 20;
      else if (st == 'u') v = 21;
      else if (st == 'v') v = 22;
      else if (st == 'w') v = 23;
      else if (st == 'x') v = 24;
      else if (st == 'y') v = 25;
      else if (st == 'z') v = 26;
      else if (st == 'A') {v = 1; show += "Alef "; }
      else if (st == 'B') {v = 2; show += "Beit "; }
      else if (st == 'G') {v = 3; show += "Gimel "; }
      else if (st == 'D') {v = 4; show += "Dalet "; }
      else if (st == 'H') {v = 5; show += "Hei "; }
      else if (st == 'V') {v = 6; show += "Vav "; }
      else if (st == 'Z') {v = 7; show += "Zayin "; }
      else if (st == 'C') {v = 8; show += "Cheit "; }
      else if (st == 'T') {v = 9; show += "Teit "; }
      else if (st == 'Y') {v = 10; show += "Yod "; }
      else if (st == 'K') {v = 11; show += "Khaf "; }
      else if (st == 'L') {v = 12; show += "Lamed "; }
      else if (st == 'M') {v = 13; show += "Mem "; }
      else if (st == 'N') {v = 14; show += "Nun "; }
      else if (st == 'S') {v = 15; show += "Samekh "; }
      else if (st == 'I') {v = 16; show += "Ayin "; }
      else if (st == 'F') {v = 17; show += "Fe "; }
      else if (st == 'E') {v = 18; show += "Tzadei "; }
      else if (st == 'Q') {v = 19; show += "Qof "; }
      else if (st == 'R') {v = 20; show += "Reish "; }
      else if (st == 'J') {v = 21; show += "Shin "; }
      else if (st == 'O') {v = 22; show += "Tav "; }
      total += v;
      if (i > 0) out += " + ";
      out += Integer.toString(v);
   }
   return(total);
}
//__________________________________________________
int getadj(String str)
{
   String[] s = getadjacent().split("\r\n");
   int count = 0;
   String[] look = str.split(" ");
   for (int i = 0; i < s.length; i++)
   {
      String[] lk = s[i].split(",");
      String st = "";
      for (int j = 0; j < lk.length; j++)
      {
         int val = Integer.parseInt(lk[j]);
         st += look[val];
      }
      if (st.length() % 7 == 0) count++;
   }
   return(count);
}
//__________________________________________________
String getfour(String str)
{
   String out = "";
   for (int i = 0; i < 7; i++)
   {
      for (int j = 0; j < 7; j++)
      {
         for (int k = 0; k < 7; k++)
         {
//System.out.println(i + " " + j + " " + k);
            if (check(i,j,k,str)) return(Integer.toString(i+1) + Integer.toString(j+1) + Integer.toString(k+1));
         }
      }
   }
   return("");
}
//__________________________________________________
boolean check(int i, int j, int k, String str)
{
   String[] look = str.split(" ");
   boolean ok = true;
   String lk = look[i] + look[j] + look[k];
   String lk2 = "";
   for (int ii = 0; ii < 7; ii++)
   {
      if (ii == i) continue;
      if (ii == j) continue;
      if (ii == k) continue;
//System.out.println(ii + " " + look[ii]);
      lk2 += look[ii];
   }

//System.out.println(lk + " " + lk2 + " " + lk.length() + " " + place(lk) + " " + value(lk) + " " + lk2.length());

   if (lk.length() % 7 != 0) ok = false;
   if (place(lk) % 7 != 0) ok = false;
   if (value(lk) % 7 != 0) ok = false;
   if (lk2.length() % 7 != 0) ok = false;
   return(ok);
}
//__________________________________________________
String getadjacent()
{
   String s = "0,1,2,3,4,5,6\r\n";
   s += "0,1,2,3,4,5\r\n";
   s += "1,2,3,4,5,6\r\n";
   s += "0,1,2,3,4\r\n";
   s += "1,2,3,4,5\r\n";
   s += "2,3,4,5,6\r\n";
   s += "0,1,2,3\r\n";
   s += "1,2,3,4\r\n";
   s += "2,3,4,5\r\n";
   s += "3,4,5,6\r\n"; 
   s += "0,1,2\r\n";
   s += "1,2,3\r\n";
   s += "2,3,4\r\n";
   s += "3,4,5\r\n";
   s += "4,5,6\r\n";
   s += "0,1\r\n";
   s += "1,2\r\n";
   s += "2,3\r\n";
   s += "3,4\r\n";
   s += "4,5\r\n";
   s += "5,6\r\n";
   s += "0\r\n";
   s += "1\r\n";
   s += "2\r\n";
   s += "3\r\n";
   s += "4\r\n";
   s += "5\r\n";
   s += "6\r\n";
   return(s);
}
//___________________________________________________________________________
public static String getFile(String file) 
{
   StringBuffer buf=new StringBuffer();String str;
  try
  {
   BufferedReader in = new BufferedReader (new FileReader (file));
   while((str=in.readLine())!=null)
   {
      buf.append(str+"\r\n");
   }
   in.close();
  }
  catch (Exception e)
  {
   System.out.println(e);
  }
   return (buf.toString());
}
}//__________________________________________________________________________
