Gangaman, а если немного упростить задачу - фиксированная длина?