#!/usr/bin/ruby M=100000 A=(1..M).map{|i|i*i}.reverse def dfs(lst,n,last) if n==0 puts lst.each_with_index.map{|e,i|((97+(2*i)%26).chr+(97+(2*i+1)%26).chr)*(e-1) + (97+(2*i)%26).chr}*'' exit else last.step(A.size-1){|i| d,r=n.divmod(A[i]) if d>0 dfs(lst+[M-i]*d,r,i+1) end } end end N=gets.to_i dfs([],N,0)