XKCD: Keyboard Mash Anomalies
CJam, 111 89 88 86 84 83 bytes

la9*~"{}qwertyuiop ;':asdfghjkl ,./&lt;&gt;?zxcvbnm"{_32^}%_'ÿ,^a\S%+{[f&amp;s\e|__|]:,}$0=&amp;


Try it online in the CJam interpreter.

How it works

la9*~     e# Push the input 9 times on the stack.

"{}qwertyuiop ;':&lt;STX&gt;asdfghjkl ,./&lt;&gt;?zxcvbnm"

{_32^}%   e# XOR a copy of each character with 32.
_'&lt;DEL&gt;,^ e# Push a string of all ASCII characters that are missing.
a\        e# Wrap it in an array.
S%+       e# Split the string at spaces and concatenate with the array.
{         e# Sort the chunks according to the following:
  [       e#
    f&amp;s   e# Push the string of characters from the input that are in this chunk.
    \e|   e# If the result is empty, replace it with the input.
    __|   e# Push a copy with duplicates removed.
  ]       e# Collect both strings in an array.
  :,      e# Replace each string with its length.
}$        e#
0=        e# Retrieve the minimum.
&amp;         e# Intersect it with the input.