Merging together a result of Nathanson from the early 70s and a recent result of Granville and Walker, we show that for any finite set
A
A
of integers with
min
(
A
)
=
0
\min (A)=0
and
gcd
(
A
)
=
1
\gcd (A)=1
there exist two sets, the “head” and the “tail”, such that if
m
≥
max
(
A
)
−
|
A
|
+
2
m\ge \max (A)-|A|+2
, then the
m
m
-fold sumset
m
A
mA
consists of the union of the head, the appropriately shifted tail, and a long block of consecutive integers separating them. We give sharp estimates for the length of the block, and find all those sets
A
A
for which the bound
max
(
A
)
−
|
A
|
+
2
\max (A)-|A|+2
cannot be substantially improved.