shortest common superstring greedy algorithm