program main implicit none integer*8::N,D,K,KK,NN,NK,NNK,i,j integer*8::ans(100)=(/(i,i=1,100)/) data j/0/ read *,N,D,K NK=N-K KK=K*(K+1)/2 NN=KK+NK*K if(NN.lt.D.or.KK.gt.D) then print '("-1")', return else NNK=(D-KK+NK-1)/NK ans(K-NNK+1) = (K-NNK+1)+((D-KK)-(NNK-1)*NK) ans(K-NNK+2:K) = (/(i+NK,i=K-NNK+2,K)/) call aprinter(ans(1:K)) end if contains subroutine aprinter(array) integer*8::array(:) character*32::cformat='(i0, (1x,i0))' write(cformat(5:9),'(i0)'),size(array) write(*,cformat) array end subroutine aprinter end program main