import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        // 将输入的字符串转换成字符数组
        char[] c = s.toCharArray();
        // 记录原字符串中出现的字符种类
        boolean[] flag = new boolean[26];
        for (int i = 0; i < c.length; i++) {
            flag[c[i] - 'a'] = true;
        }
        // 在每次遍历过程中,将遇到的字符变成离它距离最近的右边一个字符
        for (int i = 0; i < c.length; i++) {
            // 记录交换的标记;标记的作用是,如果改变了说明该位置的字符与原来的字符不一致;否则一致则没有变化,不符合要求,直接返回-1即可。
            boolean t = false;
            int k = c[i] - 'a';
            for (int j = k + 1; j < 26 + k; j++) {
                if (flag[j % 26]) {
                    t = true;
                    c[i] = (char) (j % 26 + 'a');
                }
            }
            if (!t) {
                System.out.println(-1);
                return;
            }
        }
        System.out.println(new String(c));
    }
}