Cumulative reciprocity can sustain cooperation in repeated social interactions - Nature Computational Science