# encoding: Windows-31J

OutputLanguage = 'ja'

AllTranslations = {
  'ja' => { 'underweight' => '低体重', 'normal' => '普通体重', 'overweight' => '前肥満',
            'obese' => '肥満', 'BMI' => 'ボディマス指数', 'height' => '身長', 'weight' => '体重' },
  'de' => { 'underweight' => 'Untergewicht', 'normal' => 'Normalgewicht', 'overweight' => 'Uebergewicht',
            'obese' => 'Adipositas', 'BMI' => 'Koerpermasseindex', 'height' => 'Groesse', 'weight' => 'Gewicht' },
  'en' => { 'underweight' => 'underweight', 'normal' => 'normal', 'overweight' => 'overweight',
            'obese' => 'obese', 'BMI' => 'BMI', 'height' => 'height', 'weight' => 'weight' }
  # 'en' => Hash.new { |_, key| key }
}

Translation = AllTranslations[OutputLanguage.downcase]

class Person
  attr_reader :weight

  def initialize (line)
    @name, @yomi, age_text, height_text, weight_text, @job, @special, @hobby = line.chomp.split(', ')
    @age = age_text.to_i
    @height = height_text.to_i
    @weight = weight_text.to_i
  end

  def bmi
    @weight / (@height/100.0)**2
  end
  
  def danger
    if bmi <= 18.5
      'underweight'
    elsif bmi >= 30
      'obese'
    elsif bmi >= 25
      'overweight'
    else
      'normal'
    end
  end
  
  def show
    "#{@name}, #{Translation['height']}: #{@height}, #{Translation['weight']}: #{@weight}, #{Translation['BMI']}: #{bmi} (#{Translation[danger]})"
  end
end

readlines
.collect { |input_line|  Person.new(input_line) }
.sort_by { |person|  person.weight }
.each { |person|  puts person.show }