diff --git a/2/2_b.py b/2/2_b.py
new file mode 100644
index 0000000000000000000000000000000000000000..bcb0246dda7651d3763ae319a9893c2c23156d13
--- /dev/null
+++ b/2/2_b.py
@@ -0,0 +1,104 @@
+# Ryan McShane
+
+import numpy
+import math
+from qiskit import *
+from qiskit import BasicAer
+
+# Implement (A (+) B) (+) C
+'''
+Truth Table
+3 | 2 1 0
+
+R | A B C
+0 | 0 0 0
+1 | 1 0 0
+1 | 0 1 0
+1 | 0 0 1
+0 | 1 1 0
+0 | 0 1 1
+0 | 1 0 1
+1 | 1 1 1
+'''
+
+# Quantum wires
+q = QuantumRegister(11, 'q')
+# Classical wires
+c = ClassicalRegister(4, 'c')
+#Build circuit
+circ = QuantumCircuit(q, c)
+
+# Inputs
+#circ.x(q[0]) #A
+#circ.x(q[1]) #B
+circ.x(q[6]) #C
+
+#Wire assignments
+'''
+q[0] = A
+q[1] = B
+q[2] = R1
+q[3] = At
+q[4] = Bt
+q[5] = A (+) B
+q[6] = C
+q[7] = r1
+q[8] = at
+q[9] = bt
+q[10] = (A (+) B) (+) C
+'''
+
+# Circuit
+circ.barrier(q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7],q[8], q[9], q[10])
+circ.ccx(q[0], q[1], q[2])
+circ.x(q[2]) # First NAND Gate comparing A and B
+
+circ.ccx(q[0], q[2],q[3])
+circ.x(q[3]) # Second NAND Gate comparing C and A
+
+circ.ccx(q[2], q[1], q[4])
+circ.x(q[4]) # Third NAND Gate comparing C and B
+
+circ.ccx(q[3], q[4], q[5])
+circ.x(q[5]) # Fourth and Final NAND Gate comparing At and Bt
+
+circ.ccx(q[5], q[6], q[7]) #q[6] = C
+circ.x(q[7]) # First NAND Gate comparing R1 and C
+
+circ.ccx(q[5], q[7], q[8])
+circ.x(q[8])
+
+circ.ccx(q[6], q[7], q[9])
+circ.x(q[9])
+
+circ.ccx(q[8], q[9], q[10])
+circ.x(q[10])
+
+#undo
+
+
+# Measure
+circ.barrier(q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9], q[10])
+circ.measure(q[0], c[2]) #A
+circ.measure(q[1], c[1]) #B
+circ.measure(q[6], c[0]) #C
+circ.measure(q[10], c[3]) #R
+
+#Text Representation
+text = circ.draw(output='text')
+print(text)
+
+#Test and Results
+backend_sim = BasicAer.get_backend('qasm_simulator')
+job_sim = execute(circ,backend_sim, shots=2048)
+result_sim = job_sim.result()
+counts = result_sim.get_counts()
+print(counts)
+
+
+
+
+
+
+
+