class Integer
    def pow(y, m)
      return 1 if y == 0
      res = self.pow(y/2, m)
      res * res % m * (y.odd? ? self : 1) % m
    end
end

M=(10**9+7)
l=gets.chomp
 
sum=0;
n=0;
(0..l.size).each{|idx|
    if(l[idx]=="1")
        sum += 2.pow(n,M)*3.pow(l.size-idx-1,M)
        n+=1
    end
}
sum+=2.pow(n,M)
 
 
p sum % M