Для решения этой задачи можно воспользоваться простенькой программой, которая делает все сдвиги:
begin
var alph := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'.ToCharArray;
var w := ReadlnString;
for var i := 1 to 8 do
for var x := 1 to w.Length do
begin
var ind := alph.IndexOf(w[x]);
w[x] := alph[ind + 1 = 33 ? 0 : ind + 1];
end;
w.Println
end.
Результат в приложении.
ответ: МОНОПОД