A dialogue on poverty

        On the night when the rain beats,
        Driven by the wind,
        On the night when the snowflakes mingle
        With a sleety rain,
        I feel so helplessly cold.
        I nibble at a lump of salt,
        Sip the hot, oft-diluted dregs of _sake_;
        And coughing, snuffling,
        And stroking my scanty beard,
        I say in my pride,
        "There's none worthy, save I!"
        But I shiver still with cold.
        I pull up my hempen bedclothes,
        Wear what few sleeveless clothes I have,
        But cold and bitter is the night!
        As for those poorer than myself,        
        Their parents must be cold and hungry,
        Their wives and children beg and cry.
        Then, how do you struggle through life?
        
        Wide as they call the heaven and earth,
        For me they have shrunk quite small;
        Bright though they call the sun and moon,
        They never shine for me.
        Is it the same with all men,
        Or for me alone?
        By rare chance I was born a man
        And no meaner than my fellows,
        But, wearing unwadded sleeveless clothes
        In tatters, like weeds waving in the sea,
        Hanging from my shoulders,
        And under the sunken roof,
        Within the leaning walls,
        Here I lie on straw
        Spread on bare earth,
        With my parents at my pillow,
        And my wife and children at my feet,
        All huddled in grief and tears.
        No fire sends up smoke
        At the cooking-place,
        And in the cauldron
        A spider spins its web.
        With not a grain to cook,
        We moan like the night thrush.
        Then, "to cut," as the saying is,
        "The ends of what is already too short,"
        The village headman comes,
        With rod in hand, to our sleeping place,
        Growling for his dues.
        Must it be so hopeless --
        The way of this world?

        -- Yamanoue Okura
