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));
}
}