import java.util.* ;
public class Solution{
HashMap<Character, String> map = new HashMap<Character, String>() ;
List<String> answer = new ArrayList<String>() ;
{
map.put('2', "abc") ;
map.put('3', "def") ;
map.put('4', "ghi") ;
map.put('5', "jkl") ;
map.put('6', "mno") ;
map.put('7', "pqrs") ;
map.put('8', "tuv") ;
map.put('9', "wxyz") ;
}
public void dfs(String s , String dig){
if(dig.length() == 0){
if(!s.equals("")) answer.add(s) ;
return ;
}
String words = map.get(dig.charAt(0)) ;
if(words != null && words.length() != 0){
for(int i = 0 ; i < words.length() ; i++){
dfs(s + words.charAt(i) , dig.substring(1)) ;
}
}
else dfs(s , dig.substring(1)) ;
}
public List<String> letterCombinations(String digits){
dfs("" , digits) ;
return answer ;
}
public static void main(String[] args){
System.out.println(new Solution().letterCombinations(""));
}
}