The string-to-string correction problem with block moves | Synapse