diff --git a/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 b/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2
index ea638c5e0e777f9e08b0754e9b5d1cc3d13871b7..df670b984a9b3923cac8b19b43fceac40efa82a4 100755
Binary files a/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 and b/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 differ
diff --git a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o
index d45b27df8654dabad265f3f42c21036095e0f522..d8f8b75585f6cfe29fcadf2e41b9aa8a9dfcaebf 100644
Binary files a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o and b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o differ
diff --git a/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o b/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o
index 7319206ba46e924339c87e1f7a29f036757e7b6d..325a38aabac099715f853744ffd5789cdf2da38f 100644
Binary files a/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o and b/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o differ
diff --git a/src/probdata_lagr.cpp b/src/probdata_lagr.cpp
index 0a7e7ad92898686f49a45fd63098d2f533d46c89..32eab2dd2583f967608cff79af88e0331b523064 100644
--- a/src/probdata_lagr.cpp
+++ b/src/probdata_lagr.cpp
@@ -251,11 +251,9 @@ SCIP_RETCODE SCIPcreateprobdata
          SCIP_VAR* varx = (*varbuffers)[j];
          int varbufindex = SCIPvarGetIndex(varx);
          assert(varbufindex != NULL);
-         (&listconsvarids)[counter]=varbufindex;
+         listconsvarids[counter]=varbufindex;
          counter++;
-         printf("(%d,%d) \t",counter,(&listnconsvars)[counter]);
       }
-      printf("\n");
    }
 
    // counter=0;
diff --git a/src/relax_lagr.cpp b/src/relax_lagr.cpp
index 81aa9d79ae516c7dfa124f62ba4f2e2235afd8ea..e2570f8c662a7f821c011978679b7a91aeeec5d3 100644
--- a/src/relax_lagr.cpp
+++ b/src/relax_lagr.cpp
@@ -158,6 +158,13 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
    int* listnconsvars = SCIPlistnconsvars(probdata);
    int* listconsvarids = SCIPlistconsvarids(probdata);
 
+   int* increasingorder; //example {2,4,6,9,12,...}
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&increasingorder,nSlotConss));
+   increasingorder[0] = listnconsvars[0];
+   for(int r=1; r<nSlotConss;r++)
+   {
+      increasingorder[r]=listnconsvars[r]+increasingorder[r-1];
+   }
    /* we then create the vardata function for each variable, to see at which constraint the variable is found*/
    FILE* TimeCollector;
    TimeCollector = fopen("time.txt","w");
@@ -229,9 +236,9 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
       for(int t=0;t<NVarInBadConss;t++)
       {
          varids[t]=consids[t];
-         // printf("%d \t",varids[t]);
+         printf("%d \t",varids[t]);
       }
-
+      // printf("\n");
    //    // vardata=SCIPvarGetData(var);
       SCIP_CALL(SCIPallocBlockMemory(scip , &vardata));     
       SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(vardata->varids), varids, NVarInBadConss));
@@ -351,14 +358,16 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
       SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &valid));
       SCIP_CALL(SCIPgetConsVars(relaxscip, cons, VARSinsidegoodconss, nconsvars, &valid));
       if (!valid){abort(); }
-      printf("%s\n",SCIPconsGetName(cons));
+      printf("\n %s\t",SCIPconsGetName(cons));
       for (int j = 0; j < nconsvars; ++j)                                            /* (8) */
       {
          SCIP_VAR* varx = (VARSinsidegoodconss)[j];
-         
+         printf("%s\t",SCIPvarGetName(varx));
          int varbufindex = SCIPvarGetIndex(varx);  //get the index, which will be used in assigning values to the feassol.
          assert(varbufindex != NULL);
+         printf("%d\t",varbufindex);
 
+         
 
          if (feasol[varbufindex]==-1)
          {
@@ -370,46 +379,48 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
                feasol[varnextindex]=0;
             }
 
-            vardata = SCIPvarGetData(varx);
-            int NVarInBadConss = SCIPvardataGetNVarInBadConss(vardata);
-            if(NVarInBadConss==0){feasol[varbufindex]==1;} //which means if there is no restriction put for that variable.
-
-            //and now, we go to the other variables together found in the badconss.
-            
-            int* varids = SCIPvardataGetvarids(vardata); //get the array containing the slots where the variable is located. 
+            vardata=SCIPvarGetData(varx);
+            int* varids = SCIPvardataGetvarids(vardata); 
             assert(varids=!NULL);
-
-            for(int t=0; t<NVarInBadConss; ++t)
+            int NVarInBadConss = SCIPvardataGetNVarInBadConss(vardata);
+            printf("nvarincons = %d\t",NVarInBadConss);
+            for(int t=0;t<NVarInBadConss;t++)
             {
-               
+               printf("%d \n",varids[t]);
+               //varids[t] gives the constraint address. There we still would like to find out which variables are found.
+               for(int p=increasingorder[varids[t]]-NVarInBadConss; p<increasingorder[varids[t]]; ++p)
+               {
+                  
+                  if(SCIPvarGetIndex(vars[listconsvarids[p]])!=varbufindex)
+                  {
+                     printf("var = %s\t",SCIPvarGetName(vars[listconsvarids[p]]));
+                     if(feasol[listconsvarids[p]]!=1)
+                     {
+                        feasol[listconsvarids[p]]=0;
+                     }
+                  }
+               }
             }
-
-
+            printf("\n");
          }
-         
-         
 
-         
+               
          printf("(%s,%d,%f)\n",SCIPvarGetName(varx), varbufindex,feasol[varbufindex]);
 
 
          
 
       }
-      printf("\n");
+      // printf("\n");
    }
 
    
 
-   // for(int v=0;v<nvars;v++)
-   // {
-   //    SCIP_VAR* var = SCIPgetVars(scip)[i];
-   //    id = SCIPvarGetIndex(var);
-   //    vardata = SCIPvarGetData(var);
-      
-   //    printf(" %d ",id);
+   for(int v=0;v<nvars;v++)
+   {
+      printf(" %d ",feasol[v]);
 
-   // }
+   }
    
 
 
diff --git a/time.txt b/time.txt
index dc6813bd3f801dfe1061aa7e35a40c6c5dd251e2..d9e6bc6bdd6903eb03031217f4bc6409b4e82974 100644
--- a/time.txt
+++ b/time.txt
@@ -1,2 +1,2 @@
 
- row and column identified in (sec) : 0.000053
+ row and column identified in (sec) : 0.000258