Swap capitalization of two strings your shift key is broken. wheNever you type two lines, the cApitaL
LetteRs in them get swappeD. you must write a program to fiX THIS!

Description

The input is two strings, s1 and s2, equal in length. They will each contain only printable ASCII and be at least one character in length. You may input these as two strings, an array of two strings, or a single string with s1 and s2 separated by either a tab or newline.

The output is the following:


For each character c in s1:


If the character is not a letter, output it unchanged.
Otherwise, if c is a letter:


Find the matching character (the one at the same index) in s2.


If it is a capital letter, output c capitalized.
If it is a lowercase letter, output c in lowercase.
Otherwise, output c unchanged.



Then do the same thing, except with s1 and s2 switched.


Essentially, all letters in s1 for which the matching character in s2 is capital should be capitalized, and all letters in s1 with a lowercase letter at the same index in s2 should become lowercase (and vice versa).

Test cases

Input:

ABCDEfghijKlMnOpqrstuvwxyz
aaaaaaaaaaaaaaaa----------


Output:

abcdefghijklmnopqrstuvwxyz
AAAAAaaaaaAaAaAa----------




Input:

PRogrammiNG puzZLes &amp; CODe golf
SdlkhkfaladlKsdlalksdg7ldklDgsl


Output:

Programming Puzzles &amp; Code Golf
SDlkhkfalADlksdLAlksdg7LDkldgsl




Input:

AAAbbb111
Cc2Dd3Ee4


Output:

AaABbb111
CC2dd3Ee4
CJam, 25 bytes

{z{_el_eu&amp;\__:^32&amp;f^?}%z}


This is an anonymous function that pops an array of strings from the stack and leaves one in return.

In supported browsers, you can verify all test cases at once in the CJam interpreter.

Test cases

Code

qN/2/                     e# Read input and split into arrays of two strings.

{z{_el_eu&amp;\__:^32&amp;f^?}%z}

%                         e# Map the block over all string arrays.
:+N*                      e# Separate the strings by linefeeds.


Input

ABCDEfghijKlMnOpqrstuvwxyz
aaaaaaaaaaaaaaaa----------
PRogrammiNG puzZLes &amp; CODe golf
SdlkhkfaladlKsdlalksdg7ldklDgsl
AAAbbb111
Cc2Dd3Ee4


Output

abcdefghijklmnopqrstuvwxyz
AAAAAaaaaaAaAaAa----------
Programming Puzzles &amp; Code Golf
SDlkhkfalADlksdLAlksdg7LDkldgsl
AaABbb111
CC2dd3Ee4


How it works

z                       e# Zip to transform the array of strings into an array
                        e# of character pairs.
 {                  }%  e# For each character pair:
  _el                   e#   Push a copy and convert to lowercase.
     _eu                e#   Push a copy and convert to uppercase.
        &amp;               e#   Intersect. The result will be an empty string if
                        e#   and only if both characters are letters.
         \              e#   Swap the character pair on top of the stack.
          __            e#   Push two copies.
            :^          e#   XOR both characters.
              32&amp;       e#   Logical AND with 32. This pushes 32 for letters of
                        e#   different cases and 0 for letters of the same case.
                 f^     e#   XOR each character with the result.
                   ?    e#   Select the original copy for non-empty intersection
                        e#   and the modified one otherwise.
                      z e# Zip to turn the characters pairs back into two strings.