class Solution {
private Set<Integer> vis = new HashSet<>();
private StringBuilder ans = new StringBuilder();
private int mod;
public String crackSafe(int n, int k) {
mod = (int) Math.pow(10, n - 1);
dfs(0, k);
ans.append("0".repeat(n - 1));
return ans.toString();
}
private void dfs(int u, int k) {
for (int x = 0; x < k; ++x) {
int e = u * 10 + x;
if (vis.add(e)) {
int v = e % mod;
dfs(v, k);
ans.append(x);
}
}
}
}