diff --git a/Main.py b/Main.py
new file mode 100644
index 0000000000000000000000000000000000000000..39586f7364e19d83316a59cfb32b5da1f3fa4581
--- /dev/null
+++ b/Main.py
@@ -0,0 +1,47 @@
+from buffer import Buffer
+from producer import Producer
+from consumer import Consumer
+
+import threading
+import sys
+import time
+
+
+def main(producers, consumers):
+    buffer_size = 10  # Size of the buffer
+    buffer = Buffer(size=buffer_size)
+
+    producer_threads = []
+    consumer_threads = []
+
+    # Create producer threads
+    for i in range(producers):
+        producer = Producer(buffer)
+        producer_threads.append(producer)
+        producer_thread = threading.Thread(target=producer.produce)
+        producer_thread.start()
+
+    # Create consumer threads
+    for i in range(consumers):
+        consumer = Consumer(buffer)
+        consumer_threads.append(consumer)
+        consumer_thread = threading.Thread(target=consumer.consume)
+        consumer_thread.start()
+
+    while True:
+        # Print buffer state and sleep for a while
+        print("Buffer state:")
+        print("Empty:", buffer.empty())
+        print("Full:", buffer.full())
+        print("Buffer:", buffer.buffer)
+        print("------------------------")
+        sys.stdout.flush()
+        time.sleep(5)
+
+
+# Example usage:
+if __name__ == "__main__":
+    num_producers = int(sys.argv[1])  # Number of producers from program argument
+    num_consumers = int(sys.argv[2])  # Number of consumers from program argument
+
+    main(num_producers, num_consumers)