
// Burton Rosenberg
// Mon Feb 9 1998
// CheckSum.java

// given a credit card number, checks if the
// checksum is good. The checksum is defined
// in ISO 2894.

import java.io.* ;

class CheckSum
{

   public static void main( String [] argv )
   throws IOException
   {
      BufferedReader stdin = new BufferedReader
         (new InputStreamReader(System.in)) ;

      System.out.print("Credit Card Number: " ) ;
      String ccn = cleanLine( stdin.readLine() ) ;
     
      if ( checkSum(ccn) ) 
      {
         System.out.println(ccn+ ": Checksum is good.") ;
      }
      else
      {
         System.out.println(ccn + ": Checksum is bad.") ;
      }
   }

   static String cleanLine(String s) 
   {
      String t = "" ;
      for ( int i=0; i<s.length(); i++ )
      {
         if ( Character.isDigit( s.charAt(i) ) )
            t = t + s.charAt(i) ;
      }
      return t ;
   }

   static boolean checkSum(String ccn) 
   {
       int k, cs = 0 ;

       for ( int i=0 ; i<ccn.length() ; i++ )
       {
          k = Character.digit( ccn.charAt(i), 10 ) ;
          if ( i%2 == ccn.length()%2 )
          {
             // map i -> 2*i%9 except 9->9 ( a permutation )
             k = 2*k ;
             if ( k>9 ) k -= 9 ;
          }
          cs += k ;
       }
       return ( cs%10 == 0 ) ;
   }
}

