text: #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  
  #define NUM 128
  #define EQUAL(a, b) ((a)[1] == (b)[1] && (a)[2] == (b)[2])
  
  // Return the string generated by Burrows–Wheeler transform
  char *bwt(char*);
  
  // Return L given string and its suffix array 
  char *bwtSA(char *strs, int *sa);
  
  // Add the '$' at the end of string
  char *init(char*);
  
  // Return the suffix array with the prefix doubling algorithm
  int *suffixArray(char*);
  
  // Get the original string with the BWT string
  char *reversebwt(char*);
  
  // Get the letter order
  int *rankbwt(char*);
  
  // Get the different letter's inital postiton
  int *getFirstCol(char*);
  
  // Compare the array used in prefix doubling algorithm
  int cmp(const void *, const void *);