diff --git a/bst b/bst
index a8ad46d53ed66e53a2fd94d0a3cfd7cc92c5cdf7..68ea27233d3820468615849dd3d166e1931afd00 100755
Binary files a/bst and b/bst differ
diff --git a/include/bst_lib.h b/include/bst_lib.h
index 97e8296e8f700607f2fbdaf1ae8ec4b8d46f0f61..a67846c20c38e09a5a45e51a764e1250cfdc51cd 100644
--- a/include/bst_lib.h
+++ b/include/bst_lib.h
@@ -8,20 +8,20 @@ using namespace std;
 class Node{
   private:
     int key;
-    string truck;
+    char truck;
     Node *leftNode;
     Node *rightNode;
     Node *fatherNode;
 
   public:
     void setKey(int newKey);
-    void setTruck(string newTruck);
+    void setTruck(char newTruck);
     void setLeftNode(Node *newLeftNode);
     void setRightNode(Node *newRightNode);
     void setFatherNode(Node *newRatherNode);
 
     int getKey();
-    string getTruck();
+    char getTruck();
     Node* getLeftNode();
     Node* getRightNode();
     Node* getFatherNode();
@@ -32,9 +32,9 @@ class Node{
 class Tree{
   public:
     Node *root;
-    Node* createNode(int key, string truck, Node *father);
-    Node* insertNode(int key, string truck, Node *father, Node *current);
+    Node* createNode(int key, char truck, Node *father);
+    Node* insertNode(int key, char truck, Node *father, Node *current);
     Node* binarySearch(int key, Node *current);
 };
 
-extern Node nullNode;
\ No newline at end of file
+extern Node nullNode;
diff --git a/lib/bst_lib.a b/lib/bst_lib.a
index e2489fc26c4197cf7546363322a51d80bb9522f6..e373f2fbd1f5329b67ffb406c7f543d0521350d4 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 8658372b45f8d5822c22d6bcd75affe05508302e..2e83c75ca30c2e9246e20960569c7f2767b59497 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 5ec8ae491f64a2585ee2f3f9fdf1570781fcda2e..9dbd3d97506a869a09b2a521745c8c50f1fd32da 100644
--- a/src/bst_lib.cpp
+++ b/src/bst_lib.cpp
@@ -11,7 +11,7 @@ void Node::setKey(int newKey){
   key=newKey;
 }
 
-void Node::setTruck(string newTruck){
+void Node::setTruck(char newTruck){
   truck=newTruck;
 }
 
@@ -31,7 +31,7 @@ int Node::getKey(){
   return(key);
 }
 
-string Node::getTruck(){
+char Node::getTruck(){
   return(truck);
 }
 
@@ -63,7 +63,7 @@ bool Node::printInOrder(){
   return 1;
 }
 
-Node* Tree::createNode(int key, string truck, Node *father){
+Node* Tree::createNode(int key, char truck, Node *father){
   Node *aux=new Node;
   aux->setKey(key);
   aux->setTruck(truck);
@@ -73,7 +73,7 @@ Node* Tree::createNode(int key, string truck, Node *father){
   return aux;
 }
 
-Node* Tree::insertNode(int key, string truck, Node *father, Node *current){
+Node* Tree::insertNode(int key, char truck, Node *father, Node *current){
   if(current==&nullNode){
     current=createNode(key, truck, father);
   }else if(current->getKey() > key){
diff --git a/src/main.cpp b/src/main.cpp
index c903a2d8ed21a6ac5b84de5d8bec627fe6020e06..59548e6cc02c2b14413c4195c4feb8dc48ef99cb 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2,6 +2,7 @@
 // 2015
 
 #include <iostream>
+#include <stdio.h>
 #include "bst_lib.h"
 
 using namespace std;
@@ -10,31 +11,22 @@ Node nullNode;
 
 int main(int argc, char *argv[]) {
   Tree binaryTree;
-  string answer, truck="ready";
+  char truck, comma1, comma2;
+  string answer;
   int requestedTime, currentTime;
 
   binaryTree.root=&nullNode;
 
-  while (1) {
-    cin >> currentTime;
-    std::cin.clear();
-    cin >> truck;
-    if(truck=="exit") break;
-    if(truck == "print"){
-      binaryTree.root->printInOrder();
+  while (scanf("%d %c %c %c %d\n", &currentTime, &comma1, &truck, &comma2, &requestedTime)!=EOF) {
+    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{
-      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";
-      }
+      answer="NOK";
     }
-    if(truck != "print") std::cout << truck << "," << answer << std::endl;
+    cout << truck << "," << answer << endl;
   }
-
   return 0;
 }
diff --git a/teste.txt b/teste.txt
index 639460cefe598abcbd3b6bf01056293fba30cf88..2441a718deb84c03ffc61c947bf72ec466764dbe 100644
--- a/teste.txt
+++ b/teste.txt
@@ -1,9 +1,7 @@
-1 A 49
-2 B 79
-3 C 46
-4 D 71
-5 X 9
-15 E 72
-36 F 23
-print
-exit
+1,A,49
+2,B,79
+3,C,46
+4,D,71
+5,X,9
+15,E,72
+36,F,23