Suppose there are two kids, in situation D2 both have dirty faces, while situation D1 only one has it.
In all cases there is an announcement from their father: ``at least one of you have a muddy face'', call this announcement E. By calling the first kid, Angela, and the second Bob. Their father prefers calling those kids by their nicknames, A and B respectively. So Father's announcement can be represent by:
E = [cd V dc V dd]
Where the [ ] represents the statement inside of it is true, and the first entry in the pair xx represents A is clean/dirty, likewise the second entry for person B. So you read the above as: ``It's true that 'kid A has a dirty face and B has it' or '...' or '...'''.
The D2 case:
Father asks Kid A: ``Do you know if you have a clean face or not?''.
She answers: ``No.''.
Her answer can be represented by:
[ ~[cc V dc]] , which can be read as ``I know that It's not the case that I see you, Bob, with a clean face''. Note that already translate her answer (her verbal answer is just No). But, since her announcement is true and common knowledge - I have to check on this last one, it can be written in the above terms.Now we ask Kid B, the answer you already know is ``Yes!''.
We do now for the case D1A. Where Angela is the first one to be asked and also the one with clean face.
Her answer is the same as before (as before she sees Bob with a muddy forehead). Bob's answer, when asked, is the same as before: ``Yes''.
So, in both cases, if we were to ask Angela (the first one to answer the question in both cases): ``Do you know...'' her answer is always the same: ``No''.
What happens in this case of alternate Q&A's is that the first guy doesn't get to learn when did the second guy learned about the situation is his forehead.
In D2 Bob only knew he had a muddy forehead when he heard ``No''. While in the second case D1A, hearing ``No'' didn't provide any new information. Angela knows this, even better than the who writes this.