The boundary condition is not well specified in your question, you should get:
> table(cut(DS[,1], c(98:101), right=FALSE), cut(DS[,2], c(10:13), right=TRUE))
(10,11] (11,12] (12,13]
[98,99) 1 0 0
[99,100) 0 1 0
[100,101) 1 1 0
Or this:
> table(cut(DS[,1], c(98:101), right=FALSE), cut(DS[,2], c(10:13), right=FALSE))
[10,11) [11,12) [12,13)
[98,99) 0 1 0
[99,100) 0 0 1
[100,101) 2 0 1
But not the one you show in OP.