diff --git a/alloc.c b/alloc.c
index bb1e2278f6e4174a0adc02a7079dc8d80311d314..58fe0c1898b84697ac9c85eda4dda93566b70c04 100644
--- a/alloc.c
+++ b/alloc.c
@@ -271,26 +271,21 @@ meta * search_and_split(size_t size)
 	meta * temp = NULL;
 	temp = META.Head;
 	int temp_num = 0;
-	unsigned int diff;
+	int diff;
 	unsigned int save;
 	int i = 0;
 	while(temp != NULL)
 	{
 		if(temp->free == 1 && temp->size >= size)
 		{
-			//	printf("nonono...\n");
+				
 			diff = temp->size - size;
+//			printf("diff %d\n",diff);
+//			printf("%c\n",Algorithm);		
 			if(Algorithm == 'F')
 			{	
-				if(diff >= 20)
-					return allocate(diff, size, temp);
-				else
-				{	
-					temp -> free = 0;
-//					temp -> size = size;
-
-					return temp;
-				}
+		//		printf("diff %c\n",diff);
+				return allocate(diff, size, temp);
 			}	
 			else if(Algorithm == 'W')
 			{
@@ -303,8 +298,10 @@ meta * search_and_split(size_t size)
 			else if(Algorithm == 'B')
 			{
 				if(min == 0)
+				{
 					min = temp -> size;
-				
+					temp_num = i;
+				}
 				if(min > temp -> size)
 				{
 					min = temp -> size;
@@ -353,13 +350,13 @@ meta * search_and_split(size_t size)
 
 meta * allocate(int diff, int size , meta *temp )
 {
-	meta * save = NULL;
+	unsigned int save;
 	save = temp;
 //	printf("B allocate\n");
 	if(diff >= 20)
 	{
 		save = temp;
-		meta_header[n_link] = save + 16  +(unsigned int)size;
+		meta_header[n_link] = save + 16  + size;
 		meta_header[n_link] -> free = 1;
 		meta_header[n_link] -> next = temp -> next;
 		meta_header[n_link] -> next -> prev = meta_header[n_link];
diff --git a/main.c b/main.c
index 80112d63e7018313ccb6ec787354a77429517327..9cdfcdba9b2816d6f310d6305b4f63fcc6f9a674 100644
--- a/main.c
+++ b/main.c
@@ -22,13 +22,13 @@ int main(int argc, char ** argv)
 	fgets(buf, sizeof(buf), fp);
 	save = strtok(buf , " ");
 	flag = atoi(save);
-	save = strtok(buf , " ");
-	if(strcmp(save , "W") == 0)
+	save = strtok(NULL , "\n");
+//	printf("strlne algo : %d\n",strlen(save));
+	if(save[0] == 'W')
 			Algorithm = 'W';
-	else if(strcmp(save , "B") == 0)
+	else if(save[0] == 'B')
 			Algorithm = 'B';
-
-	else if(strcmp(save , "F") == 0)
+	else if(save[0] == 'F')
 			Algorithm = 'F';
 	while(i++ < flag)
 	{