// Java: Vigen

public class Vigen {
  private static String abc;
  private static String gam;

  public static void main(String[] args) {
    if( args.length != 2 ) { System.out.println("Syntax Error.\n"); }
    gen(); doVigen( args[0].toCharArray(), args[1].toCharArray() );
  }

  private static void doVigen(char[] k, char[] t) {
    char[] outE = new char[ t.length ];
    char[] outD = new char[ t.length ];

    int i = 0, j = 0;
    for( char a : t ) {
      outE[j]   = ere( k[i],   a, 'e' );
      outD[j++] = ere( k[i++], a, 'd' );
      if( i >= k.length ) { i = 0; }
    }

    System.out.println("O=\"" + (new String(t)) + "\"");
    System.out.println("E=\"" + (new String(outE)) + "\"");
    System.out.println("D=\"" + (new String(outD)) + "\"");
  }

  private static char ere(char k, char t, char a) {
    int     p = abc.indexOf( (int)t );
    int     q = abc.indexOf( (int)k );
    if( p == -1 ) { return t; }
    else {
      if( a == 'd' ) { return gam.charAt(abc.length() + p - q); }
      else { return gam.charAt(p + q); }
    }
  }

  private static void gen() {
    char[] cat = new char[36];
    for(int i=0; i<26; i++) { cat[i] = (char)(i+65); }
    for(int i=26; i<36; i++) { cat[i] = (char)(i+22); }
    abc = new String(cat);
    abc = abc.substring(0,26) + abc.toLowerCase();
    abc += "~!@#$%^&*()_+-=,./<>?;:[]\\{}|";
    gam = abc + abc;
  }
}

// EOF
