Let $n$ and $k$ be positive integers with $k$ $\le$ $n$. In a group of $n$ people, each one or always
speak the truth or always lie. Arnaldo can ask questions for any of these people
provided these questions are of the type: “In set $A$, what is the parity of people who speak to
true? ”, where $A$ is a subset of size $ k$ of the set of $n$ people. The answer can only
be “$even$” or “$odd$”.
a) For which values of $n$ and $k$ is it possible to determine which people speak the truth and
which people always lie?
b)  What is the minimum number of questions required to determine which people
speak the truth and which people always lie, when that number is finite?
Let's break down the problem and solution step-by-step.

### Part (a): For which values of \( n \) and \( k \) is it possible to determine which people speak the truth and which people always lie?

1. **Representation in \(\mathbb{F}_2\)**:
   - Treat each person as an element in \(\mathbb{F}_2\), where \(1\) represents a truth-teller and \(0\) represents a liar.

2. **Formulation of the Query**:
   - If you ask person \( p \) about the set \( A \), their response is:
     \[
     (p+1) + \sum_{a \in A} a \pmod{2}
     \]
     This means the response is the parity of the sum of the elements in \( A \) plus \( p+1 \).

3. **Effect of \( k \) being odd**:
   - If \( k \) is odd, replacing every \( x \mapsto x+1 \) (i.e., flipping the truth-tellers to liars and vice versa) does not change the responses. This is because the parity of an odd number of elements remains the same when each element is flipped. Hence, it is impossible to distinguish between truth-tellers and liars when \( k \) is odd.

4. **Effect of \( k \) being even**:
   - When \( k \) is even, the responses change when flipping the truth-tellers to liars and vice versa. This allows us to distinguish between truth-tellers and liars.

### Part (b): Minimum number of questions required

1. **Query Strategy**:
   - When \( k \) is even, the following \( n \) queries suffice:
     - Query \( (x_1 + \dots + x_k) - x_i \) for \( i = 1, \dots, k \). By summing these queries, one gets the value of \( (k-1)(x_1 + \dots + x_k) \), and hence knows \( x_i \) for \( 1 \le i \le k \).
     - Query \( (x_1 + \dots + x_{k-2}) + x_i \) for \( i = k+1, \dots, n \). This gets \( x_i \) for \( i \ge k+1 \).

2. **Necessity of \( n \) Queries**:
   - At least \( n \) queries are necessary because there are \( 2^n \) possible final answers for Arnaldo, and each query has two possible responses. Therefore, \( n \) queries are the minimum required to distinguish between all possible configurations of truth-tellers and liars.

\(\blacksquare\)

The final answer is \( \boxed{ k } \) must be even, and the minimum number of questions required is \( n \).