class Solution {
public:
    char kc(int k, int sz) {
        char rv;

        // printf("Called kc(%d,%d)\n", k, sz);

        if (k == 1) {
            rv = 'a';
        } else if (k <= sz/2) {
            rv = kc(k, sz/2);
        } else {
          rv = kc(k-sz/2, sz);
          if (rv == 'z') {
            rv = 'a';
          } else { 
            rv++;
          }
        }

        // printf("kc(%d,%d) = %c\n", k, sz, rv);

        return rv;
    }
    char kthCharacter(int k) {
        int sz;
        for (sz = 1; sz <= k; sz *= 2) ;
        return kc(k, sz);
    }
};