We consider the maximization of a gross substitutes utility function under budget constraints. This problem naturally arises in applications such as exchange economies in mathematical economics and combinatorial auctions in (algorithmic) game theory. We show that this problem admits a polynomial-time approximation scheme (PTAS). More generally, we present a PTAS for maximizing a discrete concave function called an M -concave function under budget constraints. Our PTAS is based on rounding an optimal solution of a continuous relaxation problem, which is shown to be solvable in polynomial time by the ellipsoid method. We also consider the maximization of the sum of two M -concave functions under a single budget constraint. This problem is a generalization of the budgeted max-weight matroid intersection problem to the one with certain nonlinear objective functions. We show that this problem also admits a PTAS.2 In the optimal allocation problem discussed in [3,25], we aim at optimally allocating items to consumers, where each item is available by only one unit (see Example 2.5 for details). In contrast, in the problem discussed in [36] and [32, Ch. 11] we consider producers of items in addition to consumers, and allow to have multiple units of items. It is shown in [36] and [32, Ch. 11] that there exists an optimal allocation (equilibrium, more precisely) and such an allocation can be found efficiently under the assumptions such as the gross substitute condition of consumers' utility functions.3 The concept of M -concavity is originally introduced for a function defined on (the set of integral vectors in) an integral generalized polymatroid (see [34]). In this paper a restricted class of M -concave functions is considered; see Section 2.