Hash[*%w{ac nagoya ak akita ao aomori e matsuyama gm maebashi hk sapporo hy kobe ib mito is kanazawa iw morioka kn yokohama kw takamatsu mg sendai me tsu on naha shg otsu sn matsue tg utsunomiya tky shinjuku yn kofu . 0}].each{|k,l|$_=~(eval"/^#{k.split(//)*'.*'}/")&&(puts(l!="0"?l:$_)||break)}while gets
Note that non-ascii characters in the above source code will be escaped (such as \x9f).