module Enumerable
  def cluster
    cluster = []
    each do |element|
      if cluster.last && cluster.last.last == element
        cluster.last << element
      else
   	cluster << [element]
      end
     end
     cluster
  end
end

class Sequence 
  include Enumerable
	
  def initialize(arg)
    @arg = arg
  end


  def next
    total,result = [], ""
    @arg = @arg.to_s.split('')
    @arg.cluster.map{ |x| total <<  x.uniq.unshift(x.size) }
    @arg = total.flatten!
    @arg.each{|x|  result += x.to_s}
    @arg = result.to_i
  end

end


a = Sequence.new(1)
 p a.next