import
java.util.HashMap;
import
java.util.Map;
public
class
LexicographicallySmallestString {
public
static
String kPeriodic(String s,
int
k) {
Map<Character, Integer> mp =
new
HashMap<>();
for
(
int
i =
0
; i < s.length(); i++) {
char
ch = s.charAt(i);
mp.put(ch, mp.getOrDefault(ch,
0
) +
1
);
}
int
n = s.length();
int
gcd = gcd(n, k);
int
req = n / gcd;
for
(Map.Entry<Character, Integer> entry : mp.entrySet()) {
if
(entry.getValue() % req !=
0
) {
return
"-1"
;
}
}
StringBuilder f =
new
StringBuilder();
for
(Map.Entry<Character, Integer> entry : mp.entrySet()) {
int
fre = entry.getValue() / req;
for
(
int
i =
0
; i < fre; i++) {
f.append(entry.getKey());
}
}
StringBuilder ans =
new
StringBuilder();
for
(
int
i =
0
; i < req; i++) {
ans.append(f);
}
return
ans.toString();
}
public
static
int
gcd(
int
a,
int
b) {
if
(b ==
0
) {
return
a;
}
return
gcd(b, a % b);
}
public
static
void
main(String[] args) {
String s =
"abababa"
;
int
k =
2
;
System.out.println(kPeriodic(s, k));
}
}