# Building an NFA where where proceeding part of string has same or more 1's

Having trouble figuring out a NFA for the following language, the objective is to use only 3 states:

$$L = {\{1^ky : y \in \{0,1\}^* }\text{ and y contains atleast k 1's, for k} \ge 1 \}$$

I have got to as far as the NFA below, which would only work if the y contains clause wasn't included:

So I need a different approach to this, but can't figure out how to go about it. Is there a different way of looking at the language that would make more sense for creating the NFA?

• Your language is not regular, and no NFA will work. – orlp Sep 26 '20 at 22:50
• Are you sure you're supposed to find an NFA and not a PDA (pushdown automaton)? – Ilkka Törmä Sep 27 '20 at 10:14
• @orlp , that would certainly explain why I am having so much difficulty... many classmates seem to think it is possible, which further adds to the confusion. – SikhWarrior Sep 27 '20 at 17:02
• @IlkkaTörmä yes, the question is design an NFA M such that L(M) = L. We have not covered PDAs yet, only DFA/NFA. – SikhWarrior Sep 27 '20 at 17:03