#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct node{
struct node *lchild,*rchild;
int data;
}treeno,*treenode;
void cretree(treenode &root){
int x;
cin>>x;
if(x){
root=new treeno;
root->data=x;
cretree(root->lchild);
cretree(root->rchild);
}else{
root=NULL;
}
}
void visit(treenode root){
if(root){
cout<<root->data;
visit(root->lchild);
visit(root->rchild);
}
}
int f(treenode root){
treenode que[100],p;
int front=1,rear=1,count=0,flag=0;
que[rear++]=root;
while(front!=rear){
p=que[front++];
//cout<<p->data;
if(p->lchild!=NULL) {
que[rear++]=p->lchild;
count++;
}
if(p->rchild!=NULL) {
que[rear++]=p->rchild;
count++;
}
if(count==1) flag++;
count=0;
}
return flag;
}
int main()
{
treenode root;
int x;
cretree(root);
x=f(root);
cout <<x<< endl;
return 0;
}