Binomial distribution with support {0}

I’m making a very simple Bayesian model for discrete variables. There are two stochastic variables: K and M, where K is the variable of interest. The a priori distribution P(K) is \mathrm{Geom}(c=1/3), the likelihood P(M|K) is \mathrm{Binom}(k, p_c=0.4) and I am assuming the posteriori distribution to be geometric for now.
Here is the model:

def model(m: int):
    p_c, c = .4, 1/3
    K = pyro.sample("K", dist.Geometric(c))
    pyro.sample("obs", dist.Binomial(K, p_c), obs=m)

def guide(m: int):
    ps = pyro.param("ps", torch.tensor(.5), constraint=constraints.interval(0, 1))
    # ns = pyro.param("ns", torch.tensor(10), constraint=constraints.integer)

    K = pyro.sample("K", dist.Geometric(ps))

I get the error:

Expected value argument (Tensor of shape ()) to be within the support (IntegerInterval(lower_bound=0, upper_bound=0.0)) of the distribution Binomial(total_count: 0.0, probs: 0.4000000059604645), but found invalid values:

My question: Why is the support of the binomial distribution just {0}. I have studied drawn samples when obs are not given, which always yield 0.

Bonus question: Is there a way to apply multiple constraints to a parameter. For example if I want only positive integers, can I apply both integer constraint and positive constrait?
Edit: I now see that there is a nonnegativeinteger constraint, but the I am still curious about the question.