22行目間違えた。 関数の受け渡し変数を正しく使うなら B ANDでなくてBN ANDが正しいです。 Bがグローバル変数になっているのでたまたま動いています。