class GeoPoint
    def check_lat(lat)
        unless lat <= 180 and lat >= -180
            raise ArgumentError, 'not a correct latitude' 
        end
    end
    def check_lon(lon)
        unless lon <= 180 and lon >= -180
            raise ArgumentError, 'not a correct longitude' 
        end
    end
    def initialize(lat, lon)
        check_lat(lat)
        check_lon(lon)
        @lat = lat
        @lon = lon
    end
    def lat
        @lat
    end
    def lat=(newlat)
        check_lat(newlat)
        @lat = newlat
    end
    def lon
        @lon
    end
    def lon=(newlon)
        check_lon(newlon)
        @lon = newlon
    end
    def to_str
        (@lat >= 0 ? "N" + @lat.to_s : "S" + (-@lat).to_s) + " " +
        (@lon >= 0 ? "E" + @lon.to_s : "W" + (-@lon).to_s)
    end
end
geo = GeoPoint.new(39.1915045, -96.6070506)
puts geo.lat
puts geo.lon
puts geo.to_str