A circus is designing a tower routine consisting of people standing atop one another’s shoulders. For practical and aesthetic reasons, each person must be both shorter and lighter than the person below him or her. Given the heights and weights of each person in the circus, write a method to compute the largest possible number of people in such a tower EXAMPLE: Input (ht, wt): (65, 100) (70, 150) (56, 90) (75, 190) (60, 95) (68, 110) Output: The longest tower is length 6 and includes from top to bottom: (56, 90) (60,95) (65,100) (68,110) (70,150) (75,190)

My code:

def circus_tower(data) tower_height = 0 sorted = data.sort_by {|x| x.first} for i in (0..sorted.size) if (sorted[i].last > sorted[i+1].last) sorted[i], sorted[i+1] = sorted[i+1], sorted[i] tower_height += 1 end end end

I'm passing in the data as an array of arrays. I keep getting this error: circus_tower': undefined methodlast' for nil:NilClass (NoMethodError). I've tried to go about comparing the second element of each array in the sorted array a number of different ways(e.g., at(1), [-1]) and I keep getting a variation of the same error. Can anyone tell me what's going on?