## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The store sells two types of chairs: leather and mesh. The goal is to maximize profit given certain constraints.

### Decision Variables

- \(L\): Number of leather chairs to stock.
- \(M\): Number of mesh chairs to stock.

### Objective Function

The profit per leather chair sold is $250, and the profit per mesh chair sold is $200. The objective is to maximize the total profit \(P\), which can be represented as:

\[P = 250L + 200M\]

### Constraints

1. **Cost Constraint**: The cost of a leather chair is $500, and the cost of a mesh chair is $300. The store does not want to invest more than $50,000 on chairs.

\[500L + 300M \leq 50000\]

2. **Demand Constraint**: The store estimates a monthly demand of at most 125 chairs.

\[L + M \leq 125\]

3. **Non-Negativity Constraint**: The number of chairs cannot be negative.

\[L \geq 0, M \geq 0\]

## Gurobi Code

To solve this problem using Gurobi in Python, you can use the following code:

```python
import gurobi

def solve_chair_problem():
    # Create a new model
    model = gurobi.Model()

    # Define the decision variables
    L = model.addVar(name="Leather_Chairs", lb=0, ub=None, vtype=gurobi.GRB.INTEGER)
    M = model.addVar(name="Mesh_Chairs", lb=0, ub=None, vtype=gurobi.GRB.INTEGER)

    # Objective function: Maximize profit
    model.setObjective(250*L + 200*M, gurobi.GRB.MAXIMIZE)

    # Cost constraint
    model.addConstr(500*L + 300*M <= 50000, name="Cost_Constraint")

    # Demand constraint
    model.addConstr(L + M <= 125, name="Demand_Constraint")

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal Solution: Leather Chairs = {L.varValue}, Mesh Chairs = {M.varValue}")
        print(f"Maximum Profit: ${model.objVal}")
    else:
        print("The model is infeasible.")

if __name__ == "__main__":
    solve_chair_problem()
```