#include <stdio.h>
#include <stdlib.h>

void reverse(char *r);

char *strdup(char *s);
int strlen1(char *s);
char *strcpy(char *r, char *s);

int main(int argc, char **argv){
    char *s;
    if (argc<2) return -1;
    s=strdup(argv[1]);
    reverse(s);
    printf("%s\n", s);
    free(s);
    return 0;
}

void reverse(char *r){
    int i, l=strlen1(r);
    for(i=0; i<l/2; i++){
        int tmp=r[i];
        r[i]=r[l-i-1];
        r[l-i-1]=tmp;
    }
}

char *strdup(char *s){
    char *r=malloc(sizeof(char)*(strlen1(s)+1));
    strcpy(r, s);
    return r;
}

int strlen1(char *s){
    int i;
    for(i=0; s[i]!='\0'; i++);
    return i;
}

char *strcpy(char *r, char *s){
    int i;
    for(i=0; s[i]!='\0'; i++){
        r[i]=s[i];
    }
    r[i]='\0';
    return r;
}

