longest common subsequeunce java