The cyclic string alignment problem asks for the optimal alignment between two "cyclic" strings. For example suppose we want to compare two bead necklesses. The beads are the characters and each neckless forms a cyclic arrangement of beads. We can also think of a cyclic string as an equivalence class of strings that are identical up to cyclic permutations. So "hello" represents the same cyclic string as "elloh" or "llohe" and so on. In particular the cyclic string "hello" can be transformed into the cyclic string "lluhe" by substituting a single character (o for u). Let A(X,Y) be the standard definition of the alignment cost between two non-cyclic strings X and Y (see Section 6.6 in the textbook). Define the cyclic alignment cost C(X,Y) to be the minimum over A(X',Y') where X' ranges over cyclic permutations of X and Y' ranges over cyclic permutations of Y. Let |X| = n and |Y| = m. Assume n >= m. The standard alignment problem can be solved in O(nm) time. As a warm up, give an algorithm that computes the cyclic alignment cost in O(nm^2) time. Can you find an algorithm that computes the cyclic alignment cost in O(nm log m) time?