diff --git a/bst b/bst
index ae82def670b7145618b319007006307ae9fc2d26..a8ad46d53ed66e53a2fd94d0a3cfd7cc92c5cdf7 100755
Binary files a/bst and b/bst differ
diff --git a/lib/bst_lib.a b/lib/bst_lib.a
index d4140fc2afb62a284a77592ffb58011e73e59bc4..e2489fc26c4197cf7546363322a51d80bb9522f6 100644
Binary files a/lib/bst_lib.a and b/lib/bst_lib.a differ
diff --git a/obj/bst_lib.o b/obj/bst_lib.o
index c48485e11d20846c2ffbbfee518e3df709619a17..8658372b45f8d5822c22d6bcd75affe05508302e 100644
Binary files a/obj/bst_lib.o and b/obj/bst_lib.o differ
diff --git a/src/bst_lib.cpp b/src/bst_lib.cpp
index 2551d46eb84dddd345f77df040d70d261a57b524..5ec8ae491f64a2585ee2f3f9fdf1570781fcda2e 100644
--- a/src/bst_lib.cpp
+++ b/src/bst_lib.cpp
@@ -53,15 +53,11 @@ bool Node::printInOrder(){
   if(this==&nullNode){
     return 0;
   }
-  std::cout << "printInOrder - 1" << std::endl;
   if(leftNode!=&nullNode){
-    std::cout << "printInOrder - 2" << std::endl;
     leftNode->printInOrder();
   }
-  std::cout << "printInOrder - 3" << std::endl;
-  std::cout << " " << truck << key << " " << std::endl;
+  std::cout << truck << " " << key << std::endl;
   if(rightNode!=&nullNode){
-    std::cout << "printInOrder - 4" << std::endl;
     rightNode->printInOrder();
   }
   return 1;
@@ -69,33 +65,22 @@ bool Node::printInOrder(){
 
 Node* Tree::createNode(int key, string truck, Node *father){
   Node *aux=new Node;
-  std::cout << "createNode - 1" << std::endl;
   aux->setKey(key);
-  std::cout << "createNode - 2  " << key << std::endl;
   aux->setTruck(truck);
-  std::cout << "createNode - 3" << std::endl;
   aux->setLeftNode(&nullNode);
-  std::cout << "createNode - 4" << std::endl;
   aux->setRightNode(&nullNode);
-  std::cout << "createNode - 5" << std::endl;
   aux->setFatherNode(father);
   return aux;
 }
 
 Node* Tree::insertNode(int key, string truck, Node *father, Node *current){
   if(current==&nullNode){
-    std::cout << "insertNode - 1" << std::endl;
-    cout << current << endl;
     current=createNode(key, truck, father);
-    cout << current << endl;
   }else if(current->getKey() > key){
-    std::cout << "insertNode - 2" << std::endl;
     current->setLeftNode(insertNode(key, truck, current, current->getLeftNode()));
   }else if(current->getKey() < key){
-    std::cout << "insertNode - 3" << std::endl;
     current->setRightNode(insertNode(key, truck, current, current->getRightNode()));
   }else{
-    std::cout << "Chave ocupada!" << std::endl;
     return &nullNode;
   }
   return current;
@@ -103,16 +88,12 @@ Node* Tree::insertNode(int key, string truck, Node *father, Node *current){
 
 Node* Tree::binarySearch(int key, Node *current){
   if(current==&nullNode){
-    std::cout << "binarySearch - 1" << std::endl;
     return(&nullNode);
   }else if(current->getKey() > key){
-    std::cout << "binarySearch - 2" << std::endl;
     return(binarySearch(key,current->getLeftNode()));
   }else if(current->getKey() < key){
-    std::cout << "binarySearch - 3" << std::endl;
     return(binarySearch(key, current->getRightNode()));
   }else if(current->getKey() == key){
-    std::cout << "binarySearch - 4" << std::endl;
     return(current);
   }
   return(&nullNode);
diff --git a/src/main.cpp b/src/main.cpp
index 0ec1268c1047eccb2c13c53f97063d36ef9dfc53..c903a2d8ed21a6ac5b84de5d8bec627fe6020e06 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,24 +10,30 @@ Node nullNode;
 
 int main(int argc, char *argv[]) {
   Tree binaryTree;
-  string input, auxTruck;
-  int auxKey;
-  
+  string answer, truck="ready";
+  int requestedTime, currentTime;
+
   binaryTree.root=&nullNode;
 
   while (1) {
-    cin >> input;
-    if(input == "insert"){
-      cin >> auxTruck;
-      cin >> auxKey;
-      if(binaryTree.binarySearch(auxKey, binaryTree.root) == &nullNode){
-        cout << binaryTree.root << endl;
-        binaryTree.root=binaryTree.insertNode(auxKey, auxTruck, &nullNode, binaryTree.root);
-        cout << binaryTree.root << endl;
-      }
-    }else if(input == "print"){
+    cin >> currentTime;
+    std::cin.clear();
+    cin >> truck;
+    if(truck=="exit") break;
+    if(truck == "print"){
       binaryTree.root->printInOrder();
+    }else{
+      cin >> requestedTime;
+      if (requestedTime < currentTime) {
+        answer="NOK";
+      }else if((binaryTree.binarySearch(requestedTime, binaryTree.root) == &nullNode)&&(binaryTree.binarySearch(requestedTime-1, binaryTree.root) == &nullNode)&&(binaryTree.binarySearch(requestedTime-2, binaryTree.root) == &nullNode)){
+        binaryTree.root=binaryTree.insertNode(requestedTime, truck, &nullNode, binaryTree.root);
+        answer="OK";
+      }else{
+        answer="NOK";
+      }
     }
+    if(truck != "print") std::cout << truck << "," << answer << std::endl;
   }
 
   return 0;
diff --git a/teste.txt b/teste.txt
new file mode 100644
index 0000000000000000000000000000000000000000..639460cefe598abcbd3b6bf01056293fba30cf88
--- /dev/null
+++ b/teste.txt
@@ -0,0 +1,9 @@
+1 A 49
+2 B 79
+3 C 46
+4 D 71
+5 X 9
+15 E 72
+36 F 23
+print
+exit